Moin,
Also ich spiele zurzeit ein wenig mit der SDL rum und bin nun auf ein logisches Problem gestoßen.
Ich habe also ein Bild, das sich auf Mausklick an die Stelle des Klicks bewegt.
Allerdings ist dann die Mitte des Bildes genau an der Stelle des Klicks und nicht wie üblich die obere linke Ecke.
Nun zum Problem:
Das Bild bewegt sich immer erst an der einen Achse entlang und dann an der anderen bis es am Zielpunkt ankommt. Ich möchte aber, dass es den kürzesten weg nimmt..also quer durch.
So sieht der momentane Bewegungscode aus:
tuxX und tuxY sind jeweils die X- und Y-Koordinaten.
Nun ich komm einfach nicht drauf wie ich das Bild direkt zum Punkt bewege und nicht über Umwege ( könnte auch sein, dass meine Blockade an der Uhrzeit liegt ).
Ich hoffe ihr könnt mir helfen! Danke schonmal!
greetz
daddz
Also ich spiele zurzeit ein wenig mit der SDL rum und bin nun auf ein logisches Problem gestoßen.
Ich habe also ein Bild, das sich auf Mausklick an die Stelle des Klicks bewegt.
Allerdings ist dann die Mitte des Bildes genau an der Stelle des Klicks und nicht wie üblich die obere linke Ecke.
Nun zum Problem:
Das Bild bewegt sich immer erst an der einen Achse entlang und dann an der anderen bis es am Zielpunkt ankommt. Ich möchte aber, dass es den kürzesten weg nimmt..also quer durch.
So sieht der momentane Bewegungscode aus:
Code:
case SDL_MOUSEBUTTONDOWN:
bool moveDone = false;
while(!moveDone) {
if(tuxY > event.motion.y) {
tuxY--;
}
if(tuxX < event.motion.x) {
tuxX++;
}
if(tuxY < event.motion.y) {
tuxY++;
}
if(tuxX > event.motion.x) {
tuxX--;
}
if(tuxX == event.motion.x && tuxY == event.motion.y) {
moveDone = true;
}
tux->SetPos(tuxX-halfwidth, tuxY-halfheight);
SDL_FillRect(screen, NULL, bgColor);
tux->Draw(screen);
SDL_Flip(screen);
}
break;
Nun ich komm einfach nicht drauf wie ich das Bild direkt zum Punkt bewege und nicht über Umwege ( könnte auch sein, dass meine Blockade an der Uhrzeit liegt ).
Ich hoffe ihr könnt mir helfen! Danke schonmal!
greetz
daddz