2D Shooter
Verfasst: 25.04.2010 13:04
Hallo
Für meinen 2D Shooter (Vogelperspektive) möchte ich meine figur in mausrichtung laufen lassen.
Allerdings funktionniert es nich vollständig und ich hab jetz schon 3 stunden nach diesem fehler gesucht und ihn nich gefunden :S.
zur erklärung:
direction = gedrückte taste (1 ist nach vorne)
player\dir = drehung der figur (nach links bis -180, nach rechts bis 180)
direc = winkel der drehung der figur innerhalb eines quadranten
direc2 = quadrant im koordinatensytem, in dem die figur der punkt 0|0 ist.
also das laufen in den 2. und 4. quadranten funktionniert, nur iwie geht das mit dem 1. und 3. nich so richtig. Die figur läuft dort nur auf der y achse richtig. Auf der x achse bewegt er sich nur minimal.
Wär nett wenn mir jemand helfen könnte!!
DANKE!!!
Für meinen 2D Shooter (Vogelperspektive) möchte ich meine figur in mausrichtung laufen lassen.
Allerdings funktionniert es nich vollständig und ich hab jetz schon 3 stunden nach diesem fehler gesucht und ihn nich gefunden :S.
Code: Alles auswählen
Procedure Walk(direction)
If player\dir =< 0 And player\dir >= -90
direc = player\dir+90
direc2 = 2
ElseIf player\dir =< -90 And player\dir >=-180
direc = player\dir + 180
direc2 = 3
ElseIf player\dir => 90 And player\dir <=180
direc = player\dir - 90
direc2 = 4
ElseIf player\dir => 0 And player\dir <=90
direc = player\dir
direc2 = 1
EndIf
If direction = 1
;a = c * Sin(alpha)
;b = c * Sin(beta)
If direc2 = 1 Or direc2 = 4
player\x = player\x + (5 * Sin((90-direc)*#PI /180))
Else
player\x = player\x - (5 * Sin((90-direc)*#PI /180))
EndIf
If direc2 = 3 Or direc2 = 4
player\y = player\y + (5 * Sin(direc*#PI /180))
Else
player\y = player\y - (5 * Sin(direc*#PI /180))
EndIf
EndIf
EndProcedure
direction = gedrückte taste (1 ist nach vorne)
player\dir = drehung der figur (nach links bis -180, nach rechts bis 180)
direc = winkel der drehung der figur innerhalb eines quadranten
direc2 = quadrant im koordinatensytem, in dem die figur der punkt 0|0 ist.
also das laufen in den 2. und 4. quadranten funktionniert, nur iwie geht das mit dem 1. und 3. nich so richtig. Die figur läuft dort nur auf der y achse richtig. Auf der x achse bewegt er sich nur minimal.
Wär nett wenn mir jemand helfen könnte!!

DANKE!!!