Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Di Mai 14, 2024 03:11

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: tastatureingaben
BeitragVerfasst: So Sep 29, 2002 21:03 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Sep 13, 2002 18:26
Beiträge: 42
Wohnort: Stuttgart
was ist geeignet um z.b. ein spiel zu proggen?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Sep 29, 2002 21:37 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Versuchs mal mit DirectInput, und wenn dir das (so wie mir) aufgrund der Tatsache das es von M$ kommt und zu DirectX gehört, unangenehm ist, dann empfehle ich dir die Tastatureingaben mit GetAsyncKeyState() zu verarbeiten.
Mach ich bei meiner Engine auch.Aber vergiss nicht, das ganze unabhängig von der Rechnergeschwindigkeit zu machen!

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Sep 30, 2002 12:41 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Jul 12, 2002 07:15
Beiträge: 916
Wohnort: Dietzhölztal / Hessen
Programmiersprache: C/C++, Obj-C
Wenn Du das Fenster per API selbst erstellt hast, dann brauchst Du nur in der Haupt-Nachrichten-Schleife die Nachrichten WM_KEYDOWN und WM_KEYUP abfragen und entsprechend reagieren.

_________________
Und was würdest Du tun, wenn Du wüsstest, dass morgen Dein letzter Tag auf dieser Erde ist?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Sep 30, 2002 13:38 
Offline
DGL Member

Registriert: Do Mai 30, 2002 18:48
Beiträge: 1617
Geht auch unter VCl... einfach in den public oder private oder wo acuh immer s grad am besten passt z.B. folgende Funktion eifügen:
Code:
  1.     procedure wmKeyDown(var Message : TMessage); message WM_KEYDOWN;

bei bedarf entsprechend abändern


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Sep 30, 2002 13:43 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Ich würde es mit GetAsyncKeyState machen, da dann die Tastaturabfrage auf Hardwarebasis unabhängig vom OS erfolgt :

Gameloop :
repeat
ZeichneSzene;
VerarbeiteTastaturEingabe;
until not InGame;

procedure VerarbeiteTastaturEingabe;
var
...
begin
if (Hi(GetAsyncKeyState(vk_up)) = 128) then
Player^.Move(Vector(0,0,1*TimeFactor));
...
end;

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Sep 30, 2002 13:48 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Jul 12, 2002 07:15
Beiträge: 916
Wohnort: Dietzhölztal / Hessen
Programmiersprache: C/C++, Obj-C
Sorry, aber GetAsyncKeyState ist eine reine WinAPI-Funktion.

Du könntest auch warten, bis zum relaunch der neuen DIE-Funktione. Da ist ein DirectInput ähnliches Objekt vorhanden, welches (irgendwann in der Zukunft) auch OS-Unabhängig ist. Allerdings dauert das noch 'n weilchen... :cry:

_________________
Und was würdest Du tun, wenn Du wüsstest, dass morgen Dein letzter Tag auf dieser Erde ist?


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 6 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.050s | 17 Queries | GZIP : On ]