X- und Y-Bewegung mit Berücksichtigung des Winkels

Gast #4946691
Guten Morgen,
ich bin dabei ein Spiel zu programmieren. Mein Charakter kann sich 
drehen und natürlich laufen. Steht er im Winkel 0° und ich drücke W dann 
läuft er natürlich nur auf der Y-Achse. Halte ich allerdings W und D, 
läuft er ja quasi mit halber Geschwindigkeit auf der Y-Achse und mit 
halber Geschwindigkeit auf der X-Achse.

Wie man das anstellt steht auch z.B. hier:
http://stackoverflow.com/questions/5192983/calculating-x-y-movement-based-on-rotation-angle
1
X += Speed * Math.Cos(angle);
2
Y += speed * Math.Sin(angle);

Kann mir jemand erklären warum man für die X-Achse Cosinus nimmt und für 
die Y-Achse Sinus? Ich denke mal diese Frage wird dumm sein da ich weiß 
das es damit zutun haben muss das die X-Achse der Y-Achse ja um 90° 
verschoben ist.

Ist jemand so freundlich und kann mir das vll. noch irgendwie erläutern? 
Bin leider nicht so Mathe-Stark.
Sorry, vielen Dank,
mfG.
#4946864
Robert schrieb:
> halte ich allerdings W und D,
> läuft er ja quasi mit halber Geschwindigkeit auf der Y-Achse und mit
> halber Geschwindigkeit auf der X-Achse.

das kommt auch nicht die halbe Geschwindigkeit (0.5) hin, sondern 
Wurzel(0.5) = 0.707, damit in der quadratischen Summe (Phytagoras) 
wieder 1 raus kommt.
#4946879
Dirk B. schrieb:
> das kommt auch nicht die halbe Geschwindigkeit (0.5) hin, sondern
> Wurzel(0.5) = 0.707, damit in der quadratischen Summe (Phytagoras)
> wieder 1 raus kommt.

Wenn man die Manhattan metrik verwendet stimmt die halbe Geschwindigkeit 
wieder, aber dann würde man nicht sin und cos verwenden, oder müsste es 
noch anders normalisieren. Gibt es bereits Games, die alle Entfernungen 
mit Manhattan metrik berechnen?

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 9 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.