I made another cool physics demo.. check it..
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)