Ik heb een stukje code waarbij ik tegen een object kan zeggen: "ik wil dat je over s milliseconden op positie x bent". Elke 40ms (25fps) wordt er vervolgens berekend op welke positie het object zich op dat moment moet bevinden.
Met behulp van een sinus word wat accelleratie/decelleratie bereikt zodat het object zich lekker vloeind verplaatst.
Tot zo ver geen probleem.
Maar nu wil ik de code aanpassen zodat ik tijdens een beweging kan aangeven dat er toch naar een andere positie gegaan moet worden.
Dus dat ik (tegen een object op positie 0) zeg "zorg dat je over 9 seconden op positie 10 bent" maar al na 5 seconden zeg "zorg dat je over 5 seconden op positie 6 bent". Die tweede opdracht moet de eerste vervangen.
Vrees mijn MS-paint skills in dit voorbeeld

De sinus gaat nu niet meer op omdat het object op de starttijd al een snelheid (+richting) heeft.
Ik ben niet op zoek naar een volledig natuurkundig verantwoord physics-model, maar gewoon iets dat er een beetje vloeiend uit ziet.
Wat voor berekening zou ik hier op los kunnen laten?
Met behulp van een sinus word wat accelleratie/decelleratie bereikt zodat het object zich lekker vloeind verplaatst.
code:
1
2
3
4
5
6
7
8
| Op hoeveel procent van de beweging zijn we nu: percentage = ((nu - starttijd)/(i.eindtijde-i.startMoveTime)) Waar op de curve is dat: curve = (0.5 - 0.5 * cos(percentage*PI)) Welke positie hoort daarbij: positie = startpositie + curve * (eindpositie - startpositie) |
Tot zo ver geen probleem.
Maar nu wil ik de code aanpassen zodat ik tijdens een beweging kan aangeven dat er toch naar een andere positie gegaan moet worden.
Dus dat ik (tegen een object op positie 0) zeg "zorg dat je over 9 seconden op positie 10 bent" maar al na 5 seconden zeg "zorg dat je over 5 seconden op positie 6 bent". Die tweede opdracht moet de eerste vervangen.
Vrees mijn MS-paint skills in dit voorbeeld

De sinus gaat nu niet meer op omdat het object op de starttijd al een snelheid (+richting) heeft.
Ik ben niet op zoek naar een volledig natuurkundig verantwoord physics-model, maar gewoon iets dat er een beetje vloeiend uit ziet.
Wat voor berekening zou ik hier op los kunnen laten?