Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Bewegung ins Spiel bringen...

  Alt 4. Feb 2008, 21:23
Herzlich willkommen in der Delphi-PRAXiS, Myribo.

Wenn Speed in pixel/sec angegeben wird, dann sollte dein Code wohl so aussehen:

Delphi-Quellcode:
const
  DEG_TURN = 3;

var
  newAngle, dist, dX, dY: Double;

begin
  newAngle := MyChar.Angle;
  if IsKeyDown('D') then
    newAngle := newAngle - DEG_TURN;
  if IsKeyDown('A') then
    newAngle := newAngle + DEG_TURN;
  newangle := (newAngle + 360) mod 360;

  if IsKeyDown('W') then
  begin
    dist := MyChar.Speed * elapsedTime; // konstant?
    dX := dist * cos(DegToRad(newAngle));
    dY := dist * sin(DegToRad(newAngle));
    // jetzt noch die spielfigur an die neuen koordinaten verfrachten...
    // ...
  end;

  MyChar.Angle := newAngle;
end;
Getippt und nicht getestet.

Freundliche Grüße vom marabu
  Mit Zitat antworten Zitat