Entwickler-Ecke

Multimedia / Grafik - Tastenbelegung


AlA - Fr 28.02.03 19:19
Titel: Tastenbelegung
Ich habe ein Spiel bei den ich Raumschiffe steure. Das geht über onkeypress und onkeydown.

Quelltext
1:
2:
case key of
vl_left : begin ....

Problem: Delphi erkennt immer nur immer eine gedrückte Taste. Wie kann ich einstellen, dass delphi auch mehrere Tasten gleichzeitig erkennt wenn sie gedrückt sind?

Wenn jemand Hilfe weis bitte schreiben.

Moderiert von user profile iconTino: Absätze entfernt & Code-Tags hinzugefügt.


wulfskin - Fr 28.02.03 19:48

Hallo AIA!

Wie das genau geht, kann ich dir auch nicht sagen!
Aber ich würde das so machen: Du merkst dir z.B. in einem Array wann eine Taste gedrückt wurde, also im Ereignis OnKeyDown. Im Ereignis OnKeyUp machst du das ganze wieder Rückgängig.
Nun kannst du im Ereignis OnKeyDown überprüfen, welche Tasten gerade gedrückt sind und darauf reagieren.
Einfach "Zusatztasten" wie ALT, STRG, SHIFT kannst du auch über Shift abfragen!

Gruß Hape!


AlA - Sa 01.03.03 10:48
Titel: Danke
Ja, das ist natürlich möglich aber ich habe es mir anders gedacht. Neulich hatte ich ein Delphi-Spiel gesehen bei denn man durch gleichzeitig drücken zweier Tasten fliegen und schiessen konnte.Hatte leider keinen Quelltext dazu!!!

Moderiert von user profile iconTino: Absätze entfernt.


torstenheinze - Sa 01.03.03 12:31

lege mehrere variablen an, wenn du dann die vk_up-taste drückst, machst du eine variable true -> wenn diese true ist, dann passiert irgendwas -> nun lässt du bei keyup die variable wieder false werden.

so kann man dann auch 2 tasten gedrückt halten


mimi - Di 04.03.03 21:23

willst du sowas wie "Strg+R" (währen auch 2 Tasten) oder willst du 2 Tasten gleichzeitig drücken, also wie z.b. "a" und "b" ?
für das 2 ist das einfach, es gibt da ein befehl, der meldet dir die Aktuelle gedrückte tasten, denn musst du einfach in einem Timer aufrufen und fertig, leider weiß ich diesen Behlfe nicht mehr :oops: aber vileicht kennt ihn ja jemmand andres.