Also was ich versuche zu erreichen, ist ein Sprite zu einem anderen Sprite in einer 2D-Umgebung zu bewegen. Ich begann mit dem grundlegenden Mx = Axe - Bx Deal. Aber ich merke, je näher das Ziel dem Sprite kommt, desto langsamer wird es. Also habe ich versucht, einen prozentualen Anteil basierend auf der Geschwindigkeit zu erstellen, dann erhalten x und y ihren prozentualen Anteil an einer Geschwindigkeitsbegrenzung, allerdings wirkt es sehr seltsam und funktioniert nur, wenn Mx und My positiv sind. Hier ist der Code-Auszug:Berechnung der Geschwindigkeit mit konstanter Geschwindigkeit in grundlegenden C++ - Engine
ballX = ball->GetX();
ballY = ball->GetY();
targX = target->GetX();
targY = target->GetY();
ballVx = (targX - ballX);
ballVy = (targY - ballY);
percentComp = (100/(ballVx + ballVy));
ballVx = (ballVx * percentComp)/10000;
ballVy = (ballVy * percentComp)/10000;
EDIT: der/10000 ist die Sprites Bewegung
Sie Satz des Pythagoras verwenden könnte die Länge der ballV auf eine bestimmte Anzahl einzustellen. –
"Ich habe mit dem grundlegenden * Mx = Ax - Bx * Deal angefangen. Aber ich habe festgestellt, dass je näher das Ziel dem Sprite kommt, desto langsamer wird es." Klingt wie etwas war falsch mit Ihren Eingaben oder Ausgaben an erster Stelle Sie müssen debuggen, dass nicht die Formel anpassen, um Ihren Fehler zu berücksichtigen. Sie sollten den Vektor zum zweiten Punkt finden und diesen Vektor um die Deltazeit skalieren, um die neue Position zu finden. –