Hiiren oikealla näppäimellä saadaan mato reagoimaan painovoiman kanssa. Pari bugia siitä löytyy, nopea hiiren liikutus saa jotain mystistä tuolle madolle aikaan, ja näyttäisi siltä että pallot hakeutuvat viimmeistä kohti. Sitten toinen bugi on "heilahdus" en tiedä onko tuo ihan oikeaoppisesti tehty heilahdus. Kun vertaan tätä Spunten omaan, niin Spuntella on paljon realistisempi.
Code: Select all
SCREEN 1024,768
SetWindow "Bone Worm By DSG 2009"
Const Gravity = 0.2
Const MAX_Chains = 50
Dim Chain(MAX_Chains,2) As Float
Dim Chain_Vels(Max_Chains,2) As Float
Scale = 10
AddText "Hiiren oikealla näppäimellä mato"
AddText "liikkuu painovoiman mukaan."
Repeat
Color cbwhite
Text 0,26,"FPS: "+FPS()
For i = 1 To MAX_Chains
CurChainAngle = GetAngle(Chain(i,1),Chain(i,2),Chain(i-1,1),Chain(i-1,2))
CurDistance = Distance(Chain(i,1),Chain(i,2),Chain(i-1,1),Chain(i-1,2))
If CurDistance > 10 Or CurDistance < 10 Then
Chain(i-1,1) = Chain(i,1) + Cos(CurChainAngle) * Scale
Chain(i-1,2) = Chain(i,2) - Sin(CurChainAngle) * Scale
EndIf
If MouseDown(2) Then
Chain_Vels(i-1,1) = Chain_Vels(i-1,1) + ((Chain(i,1) - Chain(i-1,1)) / Scale) * (Gravity*0.75)
Chain_Vels(i-1,2) = Chain_Vels(i-1,2) + ((Chain(i,2) - Chain(i-1,2)) / Scale) * (Gravity*0.75)
Chain_Vels(i-1,1) = Chain_Vels(i-1,1) - (Chain_Vels(i-1,1)) * 0.075
Chain_Vels(i-1,2) = Chain_Vels(i-1,2) - (Chain_Vels(i-1,2)) * 0.075
Chain(i-1,1) = Chain(i-1,1) + Chain_Vels(i-1,1)
Chain(i-1,2) = Chain(i-1,2) + Chain_Vels(i-1,2)
Chain_Vels(i-1,2) = Chain_Vels(i-1,2) + Gravity
Else
Chain_Vels(i-1,1) = 0
Chain_Vels(i-1,2) = 0
EndIf
Color cbwhite
Line Chain(i-1,1),Chain(i-1,2),Chain(i,1),Chain(i,2)
Color cbred
Circle Chain(i,1)-5,Chain(i,2)-5,10
Next i
Scale = Scale + UpKey() - DownKey()
Chain(MAX_Chains,1) = MouseX()
Chain(MAX_Chains,2) = MouseY()
DrawScreen
Forever