Probleme mit ATan2 [Problem gelöst]

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Backbuffer

Betreff: Probleme mit ATan2 [Problem gelöst]

BeitragSo, Feb 03, 2008 10:39
Antworten mit Zitat
Benutzer-Profile anzeigen
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

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragSo, Feb 03, 2008 11:24
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSo, Feb 03, 2008 21:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielen Dank. Hast mir echt geholfen.

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group