Probleme mit ATan2 [Problem gelöst]
Übersicht

BackbufferBetreff: Probleme mit ATan2 [Problem gelöst] |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo zusammen. Ich bin gerade dabei einen 360 Grad Spaceshooter zu programmieren und bin auch ein Problem gestoßen. Und zwar will ich, dass sich das Gegnerischen Schiff zum Schiffe des Spielers dreht. Das klappt soweit auch ganz gut. Es gibt nur das Problem, das entsteht, wenn die 359 Grad auf 0 Grad umspringen.
Beispiel: Wenn der Gegner einen Winkel von 10 Grad hat und der Winkel zum Spieler aber 340 Grad sind, dreht sich das Gegnerschiff nach rechts zum Spieler (d.h. die langen 330 Grad und nicht die kurzen 30 Grad). Ich hab's echt schon mit hundert Formeln probiert, aber ich bekomme das Problem nicht gelöst. Hat irgendwer eine Idee? |
||
- Zuletzt bearbeitet von Backbuffer am So, Feb 03, 2008 21:29, insgesamt einmal bearbeitet
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
Aber sicher....
hier ist die Function die das richtig macht. Code: [AUSKLAPPEN] Function drehAufZiel (pospanzer,winkel)
If posPanzer > Winkel Then If posPanzer - 180 < Winkel Then Return - 1 Else If posPanzer + 180 < Winkel Then Return - 1 End If Return 1 End Function Pospanzer ist der aktuelle Winkel von dem gegnerischen Schiff und Winkel ist der wo sich das Schiff hindrehen soll. Also einfach mit Atan2 den Winkel ausrechnen und dann mit der Funktion drehen Code: [AUSKLAPPEN] GschiffWinkel = (GschiffWinkel + (drehAufZiel (GschiffWinkel,Sollwinkel) *Winkelschritte)+360) mod 360
|
||
[BB2D | BB3D | BB+]
|
Backbuffer |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Vielen Dank. Hast mir echt geholfen. | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group