Import mojo
Global numrings:Int=20
Class ring
Field x1:Int,y1:Int
Field x2:Float[]
Field y2:Float[]
Field spd:Float[]
Field ang:Int[]
Field n:Int
Field thetime:Int
Field timeout:Int
Field deleteme:Bool
Method New(x:Int,y:Int,num:Int,tmo:Int)
timeout = tmo
x1 = x
y1 = y
x2 = New Float[num]
y2 = New Float[num]
spd = New Float[num]
ang = New Int[num]
n = num
For Local i=0 Until num
ang[i] = (i*(360/num))
x2[i] = x1+Cos(ang[i])'*Rnd(1,7)
y2[i] = y1+Sin(ang[i])'*Rnd(1,7)
spd[i] = 1'Rnd(0.2,0.8)
Next
End Method
Method update()
For Local i=0 Until n
x2[i]+=Cos(ang[i])*spd[i]
y2[i]+=Sin(ang[i])*spd[i]
Next
thetime+=1
If thetime > timeout
deleteme = True
End If
End Method
Method draw()
SetColor 0,0,0
For Local i=1 Until n
DrawLine x2[i-1],y2[i-1],x2[i],y2[i]
Next
DrawLine x2[0],y2[0],x2[n-1],y2[n-1]
End Method
End Class
Global r:List<ring> = New List<ring>
Class MyGame Extends App
' time containers
Field newring:Int[numrings]
'locations on screen
Field lx:Int[numrings]
Field ly:Int[numrings]
Method OnCreate()
SetUpdateRate(60)
' set random positions
For Local i=0 Until numrings
lx[i] = Rnd(0,DeviceWidth)
ly[i] = Rnd(0,DeviceHeight)
Next
End Method
Method OnUpdate()
For Local i=0 Until numrings
newring[i]-=1
' if time
If newring[i]<0
' chance for new location
If Rnd(100)<10
lx[i] = Rnd(0,DeviceWidth)
ly[i] = Rnd(0,DeviceHeight)
End If
'add new ring
r.AddLast(New ring( lx[i],
ly[i],
Rnd(3,20),
Rnd(10,60)))
' set new time
newring[i] = Rnd(10,40)
End If
Next
' update the rings
For Local i:=Eachin r
i.update
If i.deleteme = True
r.Remove(i)
End If
Next
End Method
Method OnRender()
Cls 255,255,255
SetColor 0,0,0
'draw the rings
For Local i:=Eachin r
i.draw
Next
End Method
End Class
Function Main()
New MyGame()
End Function
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.
Tuesday, March 22, 2016
MonkeyX - 2d Line Explosion Effect - code example
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.