Entwickler-Ecke

Multimedia / Grafik - Reaktion auf mehrere Tasten gleichzeitig ?


Tom! - Fr 16.05.03 20:41
Titel: Reaktion auf mehrere Tasten gleichzeitig ?
Ja hallo erstmal...

ich programmiere gerade zur Aufbesserung meiner Infomatik-Schulnote ein Flugspiel, ähnlich wie der DOS-Klassiker "Raptor".

Dazu verwende ich ein Image, das sich durch Tastendruck verschieben lässt.
Ich habe dies mit der OnKeyDown-Prozedur realisiert.
Allerdings funktioniert diese Methode nicht, sobald mehr als ein Key gleichzeitig gedrückt wird; bei OnKeyDown kommt immer nur ein Key durch; d.h. ich kann nicht lenken und gleichzeitig schiessen.

Welche Möglichkeiten gibt's da?


P.S.: Ein Freund hat mir geraten, es mit einem unsichtbaren Menu zu versuchen, das mit Shortcuts angesprochen wird. Die Menupunkte wären dann die Bewegungsprozeduren. Davon bin ich allerdings weniger begeistert...

Danke im Voraus,
Tom!


GruppeCN - Sa 17.05.03 15:25

Versuch's mit OnKeyPress...


mimi - Sa 17.05.03 22:32

das wird das gleiche sein. speicher die gdrückten Tasten einfach in einem array


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
var
  keys:array[0..255]:bool;

onKeyDown:
  keys[key]:=True;

onKeyUp:
  keys[key]:=False;


Kostja - Sa 17.05.03 23:18
Titel: GetAsyncKeyState
Ich würde das über die Methode GetAsyncKeyState machen!
Man könnte die z.B. in die Prozedur KeyDown packen:

procedure Form1.KeyDown(...);
begin
If GetAsyncKeyState(VK_SPACE) < 0 Then Feuern;
end;


mimi - Sa 17.05.03 23:19

und was bringt das ?


Kostja - So 18.05.03 10:32

Reaktion auf mehrere Tasten gleichzeitig!