Hallo Leute, die Frage ist mir eigentlich relativ peinlich, aber ich bekomm einfach keine konstant schnelle Bewegung im zweidimensionalen Raum zustande.
Mein Sprite (mit xPos, yPos) soll sich in zufällige Richtungen gleich schnell bewegen. Jetzt hab ich das Problem, dass die Geschwindigkeit natürlich abnimmt wenn die Distanz zum neuen, zufälligen Wegpunkt geringer ist als die vorherige. Hat wer eine Idee, oder "best practice" in diesem Fall?
Gibt es gar eine komplett andere Möglichkeit Sprites auf einen definierten Punkt hinzubewegen?
Das ist mein Code, funktioniert alles bis auf die unterschiedliche Geschwindigkeit:
timePassed = Sekunden pro Frame
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
|
distanceToMove = D3DXVECTOR2 (distance.x * timePassed / 10, distance.y * timePassed / 10);
this->xPos+=distanceToMove.x;
this->yPos+=distanceToMove.y;
/*if wayPoint reached, do what? exactly: create another wayPoint*/
if ( abs(wayPoint.x - xPos) < 5)
{
wayPoint = D3DXVECTOR2(rand()%400,rand()%400);
distance = D3DXVECTOR2(wayPoint.x - xPos, wayPoint.y - yPos);
}
|