Thema: Delphi Problem mit Tastendruck

Einzelnen Beitrag anzeigen

Benutzerbild von Airblader
Airblader

Registriert seit: 29. Okt 2004
Ort: Geislingen an der Steige
742 Beiträge
 
#1

Problem mit Tastendruck

  Alt 3. Jan 2005, 13:48
Hi
Ich will ein kleines Spiel machen, um etwas DX zu lernen (also mehr zur Übung).
Dazu brauch ich natürlich die Pfeiltasten.

Aber wie kann ich erreichen, dass es auch geht, wenn z.B. Hoch und Rechts gedrückt ist?
Im Chat wurde ich aufgeklärt, dass nie beide Tasten im OnKeyDown ankommen.

Deshalb hab ichs im Moment so:

Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
        if Key=VK_UP then
                KeyUP_pressed := true;
        if Key=VK_DOWN then
                KeyDOWN_pressed := true;

        if Key=VK_LEFT then
                Dec(X,2);
        if Key=VK_RIGHT then
                Inc(X,2);

        if KeyUP_pressed then
                Dec(Y,2);
        if KeyDOWN_pressed then
                Inc(Y,2);
end;

procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
        if Key=VK_UP then
                KeyUP_pressed := false;
        if Key=VK_DOWN then
                KeyDOWN_pressed := false;
end;
Aber das bringt ein paar Probleme mit sich:
  • Man kann nicht beide gleichzeitig anfangen zu drücken
  • Wenn man mal schrägt fährt, und dann z.B. Rechts loslässt, fährt er nicht weiter Runter, obwohl nach Unten immer noch gedrückt ist

Gibt es da eine bessere/einfachere/funktionierend(ere) Lösung

MfG,
air
Ingo Bürk
Es nimmt der Augenblick, was Jahre geben.

Johann Wolfgang von Goethe
  Mit Zitat antworten Zitat