Entwickler-Ecke

Multimedia / Grafik - Tastenbelegung#2


AlA - So 02.03.03 17:37
Titel: Tastenbelegung#2
Ich werd wahnsinnig!!! Ich habe eine Tastensteuerung für ein Spiel definiert.Es funktioniert über OnKeyDown, dabei werden für die einzelnen Tasten dann Variablen true. Bei OnKeyUp werden bei Loslassen der Tasten wieder die Variablen auf false gesetzt. Ich wollte die normalen Richtungstasten (vk_left....) und Buchstaben (Hex : 65 ...) als Tasten benutzen.

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
case key of
vk_left : begin taste1:=false; end;
vk_right : begin taste2:=false; end;
vk_down : begin taste3:=false; end;
vk_up : begin taste4:=false; end;
56 : begin taste5:=false; end;
47 : begin taste6:=false; end;
....

Der Compiler meldet zwar keinen Fehler, aber ich kann nur die vk_Tasten verwenden. Die Buchstaben werden nicht erkannt. Wie kann ich das beheben????

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


derDoc - So 02.03.03 23:09

Versuch mal

Quelltext
1:
2:
case key of
$56: begin taste5 := false; end;


Aya - So 02.03.03 23:52

Hi,

das aller einfachste is das:


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
var
  Keys: Array[0..255] of Boolean;

procedure OnKeyDown(...);
begin
  Keys[Key]:=true;
end;

procedure OnKeyUp(...);
begin
  Keys[Key]:=false;
end;


und dann um abzufragen ob z.B. die Leertaste gedrückt ist:

Quelltext
1:
if Keys[VK_SPACE] then...                    

oder für Pfeiltaste Links:

Quelltext
1:
if Keys[VK_LEFT] then...                    


Au'revoir,
Aya


Andreas Pfau - Mo 03.03.03 12:01

Buchstaben checken:

Quelltext
1:
if Keys[Ord('A')] then...                    


mimi - Di 04.03.03 21:16

oder:

Quelltext
1:
if key = ord('a') then...