[spel] Beräkna projektils lutning (derivata + andragrads ekvation?)

Permalänk

[spel] Beräkna projektils lutning (derivata + andragrads ekvation?)

Hej,

Jag håller på att göra ett spel och använder denna kod för att beräkna en projektils hastighet/position:

//Speed = 100 // Wind = 0.99 //Angle = 45, dessa kan variera men vi tar detta som exempel. XSpeed = Speed * Math.cos(Angle * Math.PI/180); YSpeed = Speed * Math.sin(Angle * Math.PI/180);

60 ggr i sekunden körs detta:

XSpeed = XSpeed*Wind; YSpeed = YSpeed*Wind -Gravity; Projectile.x += XSpeed; Projectile.y += YSpeed;

Detta fungerar fint men det ser ju lite udda ut när projektilen har samma lutning under hela färden så nu undrar jag hur jag ska bära mig åt för att beräkna dess lutning.

Permalänk
Medlem

om du spar undan föregående position så kan du räkna ut vinkeln på linjen som utgörs av föregående position och nuvarande/kommande position, denna vinkel kan du använda för att rotera din projektil.

Visa signatur

weeeee

Permalänk
Medlem

Borde det inte bara vara att spara den senaste positionen så att du har föregående + nuvarande. Då bör du enkelt kunna räkna ut lutningen?

Visa signatur

Spelrigg: 800D| i7 3930K@4,7 GHz - Custom WC | 32 GB Kingston HyperX Beast | 7970 GHz X-Edition |1x30 Dell U3011, 2x27" | Sennheiser HD650 | Xonar Essence STX |
Laptop: G74SX 17,3" 120 Hz 3D |
Server: Phenom II X4 955BE | Corsair XMS3 8 GB | 16 HDDs, 27 TB |
HTPCs: ASUS EEE Box 1.8 Ghz | Blu-Ray | OCZ Vertex 2 60 GB | 4 GB RAM |

Permalänk
Medlem

Om jag förstår dig rätt så så räknar Atan(YSpeed / XSpeed) ut vinkeln (i radianer) du vill ha. För att få grader: (180/(Pi))*(vinkeln i rad)=vinkeln i grader, finns kanske en funktion för detta också.

Permalänk
Medlem
Skrivet av mounte:

om du spar undan föregående position så kan du räkna ut vinkeln på linjen som utgörs av föregående position och nuvarande/kommande position, denna vinkel kan du använda för att rotera din projektil.

Så hann du skicka svar före (;

Visa signatur

Spelrigg: 800D| i7 3930K@4,7 GHz - Custom WC | 32 GB Kingston HyperX Beast | 7970 GHz X-Edition |1x30 Dell U3011, 2x27" | Sennheiser HD650 | Xonar Essence STX |
Laptop: G74SX 17,3" 120 Hz 3D |
Server: Phenom II X4 955BE | Corsair XMS3 8 GB | 16 HDDs, 27 TB |
HTPCs: ASUS EEE Box 1.8 Ghz | Blu-Ray | OCZ Vertex 2 60 GB | 4 GB RAM |

Permalänk
Skrivet av mounte:

om du spar undan föregående position så kan du räkna ut vinkeln på linjen som utgörs av föregående position och nuvarande/kommande position, denna vinkel kan du använda för att rotera din projektil.

Skrivet av Gnejs:

Borde det inte bara vara att spara den senaste positionen så att du har föregående + nuvarande. Då bör du enkelt kunna räkna ut lutningen?

Smart! varför tänkte jag inte på detta ^^

Permalänk
Medlem
Skrivet av spot_1337:

Smart! varför tänkte jag inte på detta ^^

Vet inte om jag tycker detta är så smart, då posx2=posx1+XSpeed. Varför spara en position bara för att räkna ut ett värde du redan har?

Permalänk
Medlem
Skrivet av bater:

Vet inte om jag tycker detta är så smart, då posx2=posx1+XSpeed. Varför spara en position bara för att räkna ut ett värde du redan har?

Det är förvisso sant, däremot så kanske han inte vill just ha den senaste beroende på hur ofta uppdateringen sker då lutningen nog kan påverkas för mycket. Kanske är bättre att jämföra nya positionen med den som var 10:e "steg" bakåt, alternativt räkna ut nå medel på vägen för att lutningen ska bli snygg, ingen aning om hur det kommer att se ut men kan va värt att tänka på, båda kommentarerna känns helt valida iaf
Glad att jag inte pysslar med spel, gäsp!:P

Visa signatur

Spelrigg: 800D| i7 3930K@4,7 GHz - Custom WC | 32 GB Kingston HyperX Beast | 7970 GHz X-Edition |1x30 Dell U3011, 2x27" | Sennheiser HD650 | Xonar Essence STX |
Laptop: G74SX 17,3" 120 Hz 3D |
Server: Phenom II X4 955BE | Corsair XMS3 8 GB | 16 HDDs, 27 TB |
HTPCs: ASUS EEE Box 1.8 Ghz | Blu-Ray | OCZ Vertex 2 60 GB | 4 GB RAM |

Permalänk
Medlem
Skrivet av Gnejs:

Det är förvisso sant, däremot så kanske han inte vill just ha den senaste beroende på hur ofta uppdateringen sker då lutningen nog kan påverkas för mycket. Kanske är bättre att jämföra nya positionen med den som var 10:e "steg" bakåt, alternativt räkna ut nå medel på vägen för att lutningen ska bli snygg, ingen aning om hur det kommer att se ut men kan va värt att tänka på, båda kommentarerna känns helt valida iaf
Glad att jag inte pysslar med spel, gäsp!:P

För en projektil i stil med typ ett spjut så har du nog rätt i att det skulle vara snyggast, läste derivata så jag antog att han ville ha färdriktningen men det kommer nog inte se så snyggt ut.