1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
Import mojo Global stars:Starfield,mx:Float,my:Float Function Main() stars = New Starfield() End Function Class TStar Field x:Float,y:Float,z:Float Method Init() x=Rnd(-100,100) y=Rnd(-100,100) z=Rnd(-100,100) End Method Method Update() z-=1 x+=mx y+=my If z<=-100 z+=200 If x<=-100 x+=200 If y<=-100 y+=200 If x>= 100 x-=200 If y>= 100 y-=200 End Method Method Draw() Local i:Int=z+121 Local px:Int=x*450/(z+151) Local py:Int=y*350/(z+151) SetColor 255-i,255-i,255-i DrawRect 320+px,240+py,1,1 End Method End Class Class Starfield Extends App Field star:TStar[1024] Method OnCreate() SetUpdateRate 50 For Local t:Int=0 To star.Length-1 star[t]=New TStar star[t].Init Next End Method Method OnUpdate() mx=(MouseX()-320)/50 my=(MouseY()-240)/50 For Local t:Int=0 To star.Length-1 star[t].Update Next End Method Method OnRender() Cls 0,0,0 For Local t:Int=0 To star.Length-1 star[t].Draw Next End Method End Class |