G
guest_woody
Gast
Hallo zusammen!
Folgendes Problem:
Ich möchte einen Punkt von einer Position zur anderen wandern lassen. Er startete in der Mitte eines JPanel und soll dahin wandern wo mit der Maus auf das Panel geclickt wurde.
Ich war nie besonders gut in Mathe, aber ich hatte mir das ganze so gedacht das ich den Richtungsvektor zum Ziel ermittel, davon den Einheitsvektor ermittel und dessen x und y werte zu meiner aktuellen Position addiere...
In meinem Gameloop rufe ich dafür folgende Methode an meinem Punkt auf
Leider wandert der Punkt selten auf einer geraden Linie zum Ziel. Wenn ich zur Visualisierung eine Linie von einer Position zur anderen male sieht man, das sich der wadernde Punkt erst von der idealen Linie entfernt und später wieder annähert. Wie bekomme ich es hin das der Punkt gerade zum Ziel wandert?
MfG,
Woody
Folgendes Problem:
Ich möchte einen Punkt von einer Position zur anderen wandern lassen. Er startete in der Mitte eines JPanel und soll dahin wandern wo mit der Maus auf das Panel geclickt wurde.
Ich war nie besonders gut in Mathe, aber ich hatte mir das ganze so gedacht das ich den Richtungsvektor zum Ziel ermittel, davon den Einheitsvektor ermittel und dessen x und y werte zu meiner aktuellen Position addiere...
In meinem Gameloop rufe ich dafür folgende Methode an meinem Punkt auf
Code:
public void update()
{
if(currentLocation.x!=targetLocation.x||currentLocation.y!=targetLocation.y)
{
moving = true;
Point motionVector = new Point(targetLocation.x - currentLocation.x, targetLocation.y-currentLocation.y);
double laenge = Math.sqrt(motionVector.x*motionVector.x + motionVector.y*motionVector.y);
Point motionVector2 = new Point(((int)Math.round(motionVector.x/laenge)), ((int)Math.round(motionVector.y/laenge)));
currentLocation.x = currentLocation.x + motionVector2.x;
currentLocation.y = currentLocation.y + motionVector2.y;
}
else
{
moving = false;
}
}
Leider wandert der Punkt selten auf einer geraden Linie zum Ziel. Wenn ich zur Visualisierung eine Linie von einer Position zur anderen male sieht man, das sich der wadernde Punkt erst von der idealen Linie entfernt und später wieder annähert. Wie bekomme ich es hin das der Punkt gerade zum Ziel wandert?
MfG,
Woody