Einzelnen Beitrag anzeigen

BoriS.

Registriert seit: 10. Mai 2009
3 Beiträge
 
#1

Steuerung zweier Spieler über die Tastatur

  Alt 10. Mai 2009, 16:29
Hallo

Ich arbeite mich derzeit in die Andorra2D Library ein und programmiere deshalb einen Clone des schon oft vergewaltigten Spiels "PONG".

Das Spiel besitzt keine KI - man kann allerdings gegen einen Freund/Feind spielen.
Gesteuert wird das ganze über die Tastatur. Spieler 1 nutzt die Tasten "O" und "L", Spieler 2 "W" und "S".
Dadurch entsteht beim Spielen je doch das Problem, dass sich die Spieler gegenseitig stören.
Dies passiert, wenn z.B. Spieler 1 gerade sein Paddle nach ganz oben bewegen möchte und dazu die Taste "O" gedrückt hält.
Spieler 2 möchte aber gleichzeitig sein Paddle nach unten bewegen und drückt also die Taste "S".
Damit wird die Bewegung des Paddles von Spieler 1 abgebrochen.

Wie kann ich das Problem beheben?


Das Eventhandling schaut derzeit so aus:

Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
    if Engine.isRunning then
      Engine.KeyDown(Sender, Key, Shift);
end;

----

procedure tMain.KeyDown(var Sender: TObject; var Key: word; var Shift: tShiftState);
begin
  case Key of
    ord('O'): pPlayer1.MoveUp;
    ord('L'): pPlayer1.MoveDown;

    ord('W'): pPlayer2.MoveUp;
    ord('S'): pPlayer2.MoveDown;
  end;
end;
Grüße,
Boris.
  Mit Zitat antworten Zitat