Monkey: drawing a starfield

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