Cornix
06.09.2010, 18:28
Guten Abend. Erneut habe ich ein kleines Problem mit dem RPG-Maker XP und erneut wende ich mich an die hilfreichen Leute welche mir schon zahlreich beiseite standen.
Ich habe nun schon seit langen Stunden versucht dieses Problem zu lösen doch derzeit noch ohne Erfolg.
Ich will ein Sprite rotieren lassen, und zwar von seinem Ursprungspunkt in die Richtung eines anderen Objektes.
Um den Winkel zwischen dem Ursprung und dem Ziel zu erhalten benutze ich folgende Code-Zeilen:
x = @s.x - @p.x
y = @s.y - @p.y
a = Math.atan2(y,x) * 57.295779513082Dies liefert den Winkel zwischen dem Sprite @s und dem Ziel @p in Grad.
Nun habe ich versucht das Sprite mithilfe folgender Zeile rotieren zu lassen:
@s.angle = aIch musste allerdings kläglicherweise feststellen, dass dies nicht das erwünschte Ergebniss geliefert hat.
Nach einigem Hin und Her und verschiedenen Experimenten habe ich folgendes erkannt:
Die erste Funktion liefert mir die Angaben in folgendem Muster:
Osten 0°
Norden 90°
Westen 180°
Süden 270°
Die zweite Funktion setzt die Ausrichtung wie folgt:
Süden 0°
Westen 90°
Norden 180°
Osten 270°
Das Problem ist, nichtnur, dass der Ursprung voneinander abweicht, auch die Richtung in welche addiert beziehungsweise subtrahiert wird ist umgekehrt.
Im Kreis dargestellt:
Erste Funktion:
90
45 135
0 180
315 225
270
Zweite Funktion:
180
225 135
270 90
315 45
0
Wie genau soll ich die beiden Werte umrechnen damit sie übereinstimmen? Eine einfach Addition eines Fixwertes ist leider nicht möglich und ich möchte es gerne für 360° funktionsfähig haben.
P.S.: Sollte ich derlei Fragen vielleicht in einem anderen Teil des Forums stellen? Ich dachte an das "Programmierung" Forum, allerdings handelt es sich hierbei doch um Fragen bezüglich des RMXP und dessen eingebauten Funktionen.
Ich bedanke mich für eure Hilfe schoneinmal im Vorraus.
Ich habe nun schon seit langen Stunden versucht dieses Problem zu lösen doch derzeit noch ohne Erfolg.
Ich will ein Sprite rotieren lassen, und zwar von seinem Ursprungspunkt in die Richtung eines anderen Objektes.
Um den Winkel zwischen dem Ursprung und dem Ziel zu erhalten benutze ich folgende Code-Zeilen:
x = @s.x - @p.x
y = @s.y - @p.y
a = Math.atan2(y,x) * 57.295779513082Dies liefert den Winkel zwischen dem Sprite @s und dem Ziel @p in Grad.
Nun habe ich versucht das Sprite mithilfe folgender Zeile rotieren zu lassen:
@s.angle = aIch musste allerdings kläglicherweise feststellen, dass dies nicht das erwünschte Ergebniss geliefert hat.
Nach einigem Hin und Her und verschiedenen Experimenten habe ich folgendes erkannt:
Die erste Funktion liefert mir die Angaben in folgendem Muster:
Osten 0°
Norden 90°
Westen 180°
Süden 270°
Die zweite Funktion setzt die Ausrichtung wie folgt:
Süden 0°
Westen 90°
Norden 180°
Osten 270°
Das Problem ist, nichtnur, dass der Ursprung voneinander abweicht, auch die Richtung in welche addiert beziehungsweise subtrahiert wird ist umgekehrt.
Im Kreis dargestellt:
Erste Funktion:
90
45 135
0 180
315 225
270
Zweite Funktion:
180
225 135
270 90
315 45
0
Wie genau soll ich die beiden Werte umrechnen damit sie übereinstimmen? Eine einfach Addition eines Fixwertes ist leider nicht möglich und ich möchte es gerne für 360° funktionsfähig haben.
P.S.: Sollte ich derlei Fragen vielleicht in einem anderen Teil des Forums stellen? Ich dachte an das "Programmierung" Forum, allerdings handelt es sich hierbei doch um Fragen bezüglich des RMXP und dessen eingebauten Funktionen.
Ich bedanke mich für eure Hilfe schoneinmal im Vorraus.