Artificial intelligence/templates/examples/rts/rpg/strategy ect. in MonkeyX/CerberusX language. You can download the free version of MonkeyX from itch.io or Cerberus-x.com The Flash applets will stop working in around 2020.
Here is begin part of a space game. There is a ship that can rotate and increase/decrease speed. The map moves and the spaceship stays in the center of the screen. The rotation of the ship is done using the Pushmatrix and popmatrix commands.
Code below :
Import mojo Const screenwidth:Int=640 Const screenheight:Int=480 Const numstars:Int=150 Class player Field x:Float=screenwidth/2 Field y:Float=screenheight/2 Field incx:Float=0 Field incy:Float=0 Field w:Int=16 Field h:Int=16 Field angle:Int=0 Method draw() PushMatrix() Translate 320,240 Rotate(-angle) DrawPoly([Float(0-8),0 ,8,0-8 ,8,8]) DrawLine -10,0,8,0 PopMatrix() End Method Method update() If KeyDown(KEY_UP) incx = incx+Cos(angle)/10 incy = incy+Sin(angle)/10 End If If KeyDown(KEY_DOWN) incx = incx-Cos(angle)/30 incy = incy-Sin(angle)/30 End If If incx>3 Then incx = 3 If incy>3 Then incy = 3 If incx<-3 Then incx = -3 If incy<-3 Then incy = -3 If KeyDown(KEY_LEFT) angle-=1 If angle<-180 Then angle = 180 End If If KeyDown(KEY_RIGHT) angle+=1 If angle>180 Then angle=-180 End If For Local i:=Eachin s i.x+=incx i.y+=incy If i.x>screenwidth Then i.x = 0 ; i.y=Rnd(screenheight) If i.y>screenheight Then i.y=0 ; i.x = Rnd(screenwidth) If i.x<0 Then i.x=screenwidth ; i.y=Rnd(screenheight) If i.y<0 Then i.y=screenheight ; i.x=Rnd(screenwidth) Next End Method End Class Class star Field x:Float Field y:Float Method New() x = Rnd(screenwidth) y = Rnd(screenheight) End Method Method draw() DrawPoint x,y End Method End Class Global s:List<star> = New List<star> Global p:player = New player Class MyGame Extends App Method OnCreate() SetUpdateRate(60) For Local i=0 Until numstars s.AddLast(New star()) Next End Method Method OnUpdate() p.update End Method Method OnRender() Cls 0,0,0 SetColor 255,255,255 DrawText "Use cursor keys to control the ship.",0,0 For Local i:=Eachin s i.draw Next p.draw End Method End Class Function Main() New MyGame() End Function
Note: Only a member of this blog may post a comment.
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.