Bewegen in die eine Richtung

Previous topic - Next topic

Alexander

Hi,

ich hätte da mal wieder 'ne Frage, diesmal für die mathematisch begabteren unter euch ( ich krieg's zumindestens nicht hin :( ).
Hier erstmal der Code soweit:
Code (glbasic) Select
LOADSPRITE "Person.bmp", 0


DIM PlayerData[2]
PlayerData[0] = 100  // X-Pos
PlayerData[1] = 100  // Y-Pos

Winkel = 0

WHILE KEY(1) = FALSE

  // Bewegung abfragen
  lr = ( KEY(203) - KEY(205) ) * 2

  PlayerData[1] = PlayerData[1] - ( KEY(200) * 2)

  //dy = KEY(208) - KEY(200)
  Winkel = Winkel + lr

  IF Winkel > 360 THEN Winkel = 0
  IF Winkel < 0 THEN Winkel = 360

  ROTOSPRITE 0, PlayerData[0], PlayerData[1], Winkel

  SHOWSCREEN

WEND

END
Und hier das dazugehörige Bild:


Wie krieg ich das nun hin, das sich das Sprite immer in die Richtung wohin der Pfeil zeigt bewegt?
Es sollte wohl irgendwie mit Sin oder Cos funktionieren, aber sowas hatte ich vor laaanger Zeit gelernt, drum komm ich da nicht so wirklich drauf...

Vielen Dank schonmal für die Hilfe :)

Kitty Hello

Quote from: Alexander
Code (glbasic) Select
 // Bewegung abfragen
  lr = ( KEY(203) - KEY(205) ) * 2

  // Das Bild ist nicht nach 0° (rechts) ausgereichtet, darum hier etwas
  // anders als gewöhnlich
  PlayerData[1] = PlayerData[1] - COS(Winkel) * KEY(200) * 2
  PlayerData[0] = PlayerData[0] - SIN(Winkel) * KEY(200) * 2

  //dy = KEY(208) - KEY(200)
  Winkel = Winkel + lr

  // Das ist egal
  // IF Winkel > 360 THEN Winkel = 0
  // IF Winkel < 0 THEN Winkel = 360

  ROTOSPRITE 0, PlayerData[0], PlayerData[1], Winkel

  SHOWSCREEN

WEND

END
So geht's.

Alexander

Hi,

Vielen Dank für die Mega-Schnelle Antwort :)
Funktioniert einwandfrei!