Kirjasto on nyt jaossa. Kertokaa bugeista minulle, ja jos en vastaa niin voittehan yrittää itse korjailla niitä.
Kommentoikaa ja kertokaa ohjelman pyörimis nopeudet!
Btw, kiitos vaan avusta SPuntelle!
Tulevat lisäominaisuudet:
- DrawImagePar() - Piirtää kuvan partikkelin siainteihin
- ParticleImageCollision() - Käyttää kuvaa pikselin tarkasti törmäyspintana
- SetParDist:n lisäys: Pitää partikkelia sovittujen kulmien välillä toiseen partikkeliin nähden. Tämä päivitys ei tule ihan heti, minun pitää ottaa selvää, miten tämä toimii.
- VectorIntersect() - Kertoo onko kaksi partikkeliviivaa päällekkäin.
Nyt uudet ominaisuudet:
DeleteParticle() ja FormateParticles()
Tässäpä olisi toinen räsynukke, mutta selkärangassakin on piste.
Code: Select all
Include "Dream Physics Libary.CB"
SCREEN 1280,720
SetWindow "Dream Physics Ragdoll"
//Luodaan partikkelien hallinta taulukko
Dim Particles_(14)
//Tehdään 11 partikkeli handlea
For i = 0 To 14
Particles_(i) = AddParticle(1920/2,1080/2)
Next i
gravity# = 0.3
wind# = 0.0
MouseHold = True
Repeat
If MouseHit(1) Then MouseHold = Not MouseHold
If MouseHold = True Then SetParPosition(Particles_(pointing),MouseX(),MouseY())
ParticlesAbsoluteArea(0,0,ScreenWidth(),ScreenHeight()-20)
'Selkäranka
SetParDist(Particles_(0),Particles_(1),22)
SetParDist(Particles_(1),Particles_(2),22)
SetParDist(Particles_(2),Particles_(3),22)
'Kädet
SetParDist(Particles_(0),Particles_(4),50)
SetParDist(Particles_(0),Particles_(5),50)
SetParDist(Particles_(4),Particles_(6),50)
SetParDist(Particles_(5),Particles_(7),50)
'Jalat
SetParDist(Particles_(3),Particles_(8),45)
SetParDist(Particles_(3),Particles_(9),45)
SetParDist(Particles_(8),Particles_(10),55)
SetParDist(Particles_(9),Particles_(11),55)
DrawVector(Particles_(0),Particles_(1))
DrawVector(Particles_(1),Particles_(2))
DrawVector(Particles_(2),Particles_(3))
'Kädet
DrawVector(Particles_(0),Particles_(4))
DrawVector(Particles_(0),Particles_(5))
DrawVector(Particles_(4),Particles_(6))
DrawVector(Particles_(5),Particles_(7))
'Jalat
DrawVector(Particles_(3),Particles_(8))
DrawVector(Particles_(3),Particles_(9))
DrawVector(Particles_(8),Particles_(10))
DrawVector(Particles_(9),Particles_(11))
If KeyHit(cbkeyup) Then
gravity# = gravity# - 0.01
ElseIf KeyHit(cbkeydown) Then
gravity# = gravity# + 0.01
EndIf
If KeyHit(cbkeyright) Then
wind# = wind# - 0.01
ElseIf KeyHit(cbkeyleft) Then
wind# = wind# + 0.01
EndIf
Vecta = GetVectorAngle(Particles_(1),Particles_(0))
Circle GetParx(Particles_(0))-10+Cos(Vecta)*10,GetParY(Particles_(0))-10-Sin(Vecta)*10,20
CalculateParPositions(wind# ,gravity#)
Text 0,0,"Horizion velocity (x axel constforce): "+wind
Text 0,15,"Gravity (y axel constforce): "+gravity#
Text 0,30,"Use arrows To change values."
Text 0,45,"Togle mouse left button To set ragdoll free Or catch it back."
Text 0,60,"FPS: "+FPS()
DrawScreen
Forever
Code: Select all
Include "Dream Physics Libary.CB"
SCREEN 1280,720
SetWindow "Dream Physics Ragdoll"
//Luodaan partikkelien hallinta taulukko
Const MaxParticles = 20
Dim Particles_(MaxParticles)
//Tehdään 11 partikkeli handlea
For i = 0 To MaxParticles
Particles_(i) = AddParticle(1920/2,1080/2)
Next i
gravity# = 0.3
wind# = 0.0
MouseHold = True
pointing = 0
Repeat
For i = 1 To MaxParticles
SetParDist(Particles_(i-1),Particles_(i),20)
Next i
pointing = pointing + MouseMoveZ()
pointing = Max(0,Min(pointing,MaxParticles))
If MouseHit(1) Then MouseHold = Not MouseHold
If MouseHold = True Then SetParPosition(Particles_(pointing),MouseX(),MouseY())
CalculateParPositions(wind# ,gravity#)
For i = 0 To MaxParticles
DrawVector(Particles_(0),Particles_(1))
If i > 1 Then
DrawVector(Particles_(i-1),Particles_(i))
EndIf
Next i
If KeyHit(cbkeyup) Then
gravity# = gravity# - 0.01
ElseIf KeyHit(cbkeydown) Then
gravity# = gravity# + 0.01
EndIf
If KeyHit(cbkeyright) Then
wind# = wind# - 0.01
ElseIf KeyHit(cbkeyleft) Then
wind# = wind# + 0.01
EndIf
ParticlesAbsoluteArea(0,0,ScreenWidth(),ScreenHeight()-30)
Text 0,0,"Horizion velocity (x axel constforce): "+wind
Text 0,15,"Gravity (y axel constforce): "+gravity#
Text 0,30,"Use arrows To change values."
Text 0,45,"Togle mouse left button To set rope free Or catch it back."
Text 0,60,"FPS: "+FPS()
Text 0,75,"Use mouse scroll to change controlling point."
DrawScreen
Forever