Code:
Type TSolidBlock
Global List:TList
Global Image:TImage
Field x#,y#,Xvel#,Yvel#
Field Size#
Field R,G,B
Function CreateBlock(x#,y#,size#)
Local Block:TSolidBlock = New TSolidBlock
If List = Null List = CreateList()
List.AddLast Block
Block.R=Rnd(10,200)
Block.G=Rnd(10,200)
Block.B=Rnd(10,200)
Block.x# = x#
Block.y# = y#
Block.size# = size#
EndFunction
Function MoveBlocks()
If Not List Return
Local Block:TSolidBlock
For Block = EachIn List
If MouseDown(1) Friction#=0.0
If MouseDown(2) Friction#=Rnd(-4.5,4.5)
Dir#=Rnd(0,360)
Block.Xvel#:+ Cos(Dir#)*friction#
Block.Yvel#:+ Sin(Dir#)*friction#
Block.X# = Block.X# + Block.Xvel# - Friction#
Block.Y# = Block.Y# + Block.Yvel# - Friction#
Next
End Function
Function DrawBlocks()
If Not List Return
Local Block:TSolidBlock
For Block = EachIn List
SetColor(block.R,block.G,block.B)
DrawRect(block.x#-block.size#/2,block.y#-block.size#/2,block.size#,block.size#)
Next
End Function
End Type
Graphics 800,600,0
Repeat
Cls
SetColor(255,255,255)
DrawText "Move the mouse",0,0
DrawText "LMB: Draw | RMB: Explode!",0,20
If MouseDown(1) TSolidBlock.CreateBlock(MouseX(),MouseY(),Rnd(2,10))
TSolidBlock.MoveBlocks()
TSolidBlock.DrawBlocks()
Flip
Until KeyHit(Key_Escape)
haha im all proud cuz its the first demo i made that uses vectors on multiple objects!