@luckie
Das ist merkwürdig.
Meine Hauptanwendung ist
nonVCL Programmiert und nutzt ein Boolean Array zum merken ob die Tasten gedrückt sind oder nicht.
das geschieht folgendermasen:
Delphi-Quellcode:
Function WndProc(hWnd: HWND;
// Handle okna
message: UINT;
// Zpráva pro okno
wParam: WPARAM;
// Doplòkové informace
lParam: LPARAM):
// Doplòkové informace
LRESULT;
stdcall;
..
begin
..
Case message Of
WM_KEYDOWN:
Begin
keys[wParam] := TRUE;
// Oznámí to programu
..
end;
WM_KEYUP:
Begin
keys[wParam] := FALSE;
// Oznámí to programu
..
end;
..
end;
Die Routine die das dann auswertet:
Delphi-Quellcode:
// SDLK_Left:
If Keys[37] And Not Keys[16] Then Begin
Case CameraRot Of
0: playerdz := PlayerForce;
1: playerdx := -PlayerForce;
2: playerdz := -PlayerForce;
3: playerdx := PlayerForce;
End;
End;
If Keys[37] And Keys[16] Then Begin
Keys[37] := false;
If ReverseCamera Then
CameraRot := (CameraRot + 3) Mod 4 // Zoom und CameraRot sind in BalacedObjects deklariert , da sont Tplayer nicht darauf zugreifen kann.
Else
CameraRot := (CameraRot + 1) Mod 4; // Zoom und CameraRot sind in BalacedObjects deklariert , da sont Tplayer nicht darauf zugreifen kann.
End;
// SDLK_Right:
If Keys[39] And Not Keys[16] Then Begin
Case CameraRot Of
0: playerdz := -PlayerForce;
1: playerdx := PlayerForce;
2: playerdz := PlayerForce;
3: playerdx := -PlayerForce;
End;
End;
// 180° drehung
If Keys[38] And Keys[16] Then Begin
keys[38] := false;
CameraRot := (CameraRot + 2) Mod 4;
End;
// 180° drehung
If Keys[40] And Keys[16] Then Begin
keys[40] := false;
CameraRot := (CameraRot + 2) Mod 4;
End;
// Camera Drehen
If Keys[39] And Keys[16] Then Begin
Keys[39] := false;
If ReverseCamera Then
CameraRot := (CameraRot + 1) Mod 4 // Zoom und CameraRot sind in BalacedObjects deklariert , da sont Tplayer nicht darauf zugreifen kann.
Else
CameraRot := (CameraRot + 3) Mod 4; // Zoom und CameraRot sind in BalacedObjects deklariert , da sont Tplayer nicht darauf zugreifen kann.
End;
Ich weis der Code sieht nicht besonders schön aus. Das liegt daran das ich keine Ahnung von
NONVCL Programmierung habe.
Aber bei mir hat es immer wunderbar getan.
Vielleicht erkennst du warum es bei dir nicht geht.