Re: My Old Dos .ex Kaleidoscope programme
- Posted by dcole Jul 28, 2010
- 1355 views
Hello Signor,
I'm not sure where you want put clear_screen.
I think this is what you want.
----------------------------------------------------- include win32lib.ew without warning include graphics.e include machine.e --if graphics_mode(18) then end if constant Win = create( Window, "Kal", 0, 100, 100, 640,520, 0 ) constant s = getClientRect(Win) --setPenColor(Win, Red ) atom rgb rgb=getPixel(Win,10,10)--a random point before any drawing atom a,b,c,d,a1,b1,c1,d1,a2,b2,c2,d2,a3,b3,c3,d3, x,y,x1,y1,xx,yy,xx1,yy1,xxx,yyy,xxx1,yyy1,xxxx,yyyy,xxxx1,yyyy1, lt,tp,rt,bt,lt1,tp1,rt1,bt1,lt2,tp2,rt2,bt2,lt3,tp3,rt3,bt3, kount,kcount,kcol kount=0 kcol=rand(16) kcount=0 lt=0 tp=0 bt=300 rt=405 lt1=225 tp1=0 bt1=300 rt1=630 lt2=0 tp2=180 bt2=480 rt2=405 lt3=225 tp3=180 bt3=480 rt3=630 x=235 x1=205 y=80 y1=220 xx=392 xx1=422 yy=80 yy1=220 xxx=235 xxx1=205 yyy=400 yyy1=260 xxxx=392 xxxx1=422 yyyy=400 yyyy1=260 a=1 b=1 c=2 d=1 a1=a b1=b c1=c d1=d a2=a b2=b c2=c d2=d a3=a b3=b c3=c d3=d procedure val() x-=a y-=b x1-=c y1-=d xx+=a1 yy-=b1 xx1+=c1 yy1-=d1 xxx-=a2 yyy+=b2 xxx1-=c2 yyy1+=d2 xxxx+=a3 yyyy+=b3 xxxx1+=c3 yyyy1+=d3 end procedure procedure xyopp() if x<lt or x>rt then a=-a end if if y<tp or y>bt then b=-b end if if x1<lt or x1>rt then c=-c end if if y1<tp or y1>bt then d=-d end if end procedure procedure xyopp2() if xx<lt1 or xx>rt1 then a1=-a1 end if if yy<tp1 or yy>bt1 then b1=-b1 end if if xx1<lt1 or xx1>rt1 then c1=-c1 end if if yy1<tp1 or yy1>bt1 then d1=-d1 end if end procedure procedure xyopp3() if xxx<lt2 or xxx>rt2 then a2=-a2 end if if yyy<tp2 or yyy>bt2 then b2=-b2 end if if xxx1<lt2 or xxx1>rt2 then c2=-c2 end if if yyy1<tp2 or yyy1>bt2 then d2=-d2 end if end procedure procedure xyopp4() if xxxx<lt3 or xxxx>rt3 then a3=-a3 end if if yyyy<tp3 or yyyy>bt3 then b3=-b3 end if if xxxx1<lt3 or xxxx1>rt3 then c3=-c3 end if if yyyy1<tp3 or yyyy1>bt3 then d3=-d3 end if end procedure procedure stall() for i=1 to 1500000 do end for end procedure procedure clearScreen() setPenColor(Win,rgb) drawRectangle( Win, w32True, s[1],s[2],s[3],s[4] ) end procedure procedure draw_it(integer self, integer event, sequence params) for i= 1 to 65 by .1 do doEvents(0)--this checks for keystrokes kount+=1 setPenColor(Win,Red) drawLine(Win,x+a,y+b,x1+c,y1+d) drawLine(Win,xxx+a2,yyy+b2,xxx1+c2,yyy1+d2) drawLine(Win,xx+a1,yy+b1,xx1+c1,yy1+d1) drawLine(Win,xxxx+a3,yyyy+b3,xxxx1+c3,yyyy1+d3) stall() val() xyopp() xyopp2() xyopp3() xyopp4() clearScreen() end for kcount+=1 end procedure setHandler(Win,w32HActivate, routine_id("draw_it")) procedure close(integer self,integer event,sequence params) if params[1]=27 then--esc closeWindow(Win) end if end procedure setHandler(Win,w32HKeyDown,routine_id("close")) WinMain( Win, Normal )
Don Cole