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