Here a short example on how you can do shotguns in platformer games.
Code below :
Import mojo
Global px:Float=640/2,py:Float=480/2
Global pw:Int=32,ph:Int=32
Global sgdelay:Int
Global sgshotshow:Int
Class sgbullets
Field x:Float,y:Float
Field incx:Float,incy:Float
Field timeout:Int=Millisecs()+1000
Field delete:Bool=False
Method New(x:Float,y:Float)
Self.x = x
Self.y = y
incx = Rnd(3.5,4.5)
incy = Rnd(-0.3,0.3)
If Rnd(10) < 2 Then incy=Rnd(-1,1)
End Method
Method update()
x+=incx
y+=incy
If Millisecs() > timeout Then delete = True
For Local i:=Eachin sgbullet
If i.delete = True Then sgbullet.Remove i
Next
End Method
Method draw()
SetColor 200,200,200
DrawOval x,y,3,3
End Method
End Class
Global sgbullet:List<sgbullets> = New List<sgbullets>
Class MyGame Extends App
Method OnCreate()
SetUpdateRate(60)
End Method
Method OnUpdate()
If KeyDown(KEY_SPACE) And Millisecs() > sgdelay Or (Rnd(10)<2 And Millisecs() > sgdelay)
sgdelay = Millisecs() + 700
sgshotshow = Millisecs() + 500
For Local i=0 Until 5
sgbullet.AddLast(New sgbullets(px+32,py+10))
Next
End If
For Local i:=Eachin sgbullet
i.update
Next
End Method
Method OnRender()
Cls 0,0,0
SetColor 255,255,255
DrawText "Platformer Shotgun shooting example.",0,0
DrawRect px,py,pw,ph
SetColor 255,255,255
If Millisecs() < sgshotshow
PushMatrix()
Translate px,py
Rotate(45)
Translate -px,-py
DrawText "PANG",px+pw/3,py+ph
PopMatrix()
End If
For Local i:=Eachin sgbullet
i.draw
Next
End Method
End Class
Function Main()
New MyGame()
End Function
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.