Code archives/Graphics/Paralax Circles
This code has been declared by its author to be Public Domain code.
Download source code
| Two circles moving in paralax |
; Paralax -- Sample paralax circle demo ; 12/13/2003, by Marc van den Dikkenberg / xlsior ; ; The code below is just a simple example of the general principle. ; This effect was used in many demo's during the 80's. ; ; Note: The black bars could be removed by using multiple tiles images that are ; have a combined size of larger than the full screen. ; Graphics 640,480,16,3 SetBuffer BackBuffer() circle1=CreateImage(640,480) circle2=CreateImage(640,480) For t=(640*1.5) To 0 Step -40 Color 255,0,0 Oval 320-(t/2),240-(t/2),t,t Color 0,255,0 Oval 320-(t/2)+10,240-(t/2)+10,t-20,t-20 Next GrabImage circle1,0,0 Color 0,0,0 Rect 0,0,640,480 For t=840 To 0 Step -40 Color 0,0,255 Oval 320-(t/2),240-(t/2),t,t Color 0,255,0 Oval 320-(t/2)+10,240-(t/2)+10,t-20,t-20 Next GrabImage circle2,0,0 MaskImage circle1,0,255,0 MaskImage circle2,0,255,0 While Not KeyDown(1) aa=MilliSecs() ; Make both circles move at different speeds t=t+3 t2=t2+2 Cls ; Make both circles move in a different pattern x#=Sin(t)*10 y#=Cos(t)*10 x2#=Sin(t2)*15 y2#=Cos(t2)*15 ; SIN/COS gone full circle, reset If t>359 Then t=t-360 If t2>359 Then t2=t2-360 ; Draw the first circle DrawImage circle1,x#,y# ; Have circle 2's X-value be influenced by its Y position, to differentiate DrawImage circle2,x2#+y2#,y2#*3 ; Put black bars around the image, so the edges look better Color 0,0,0 Rect 0,0,640,50 Rect 0,430,640,50 Rect 0,0,32,480 Rect 608,0,32,480 ; Update Screen Flip Wend |