ERLEDIGT
NEIN
NEIN
ANTWORTEN
11
11
ZUGRIFFE
350
350
EMPFEHLEN
-
17.10.11 14:04 #1
Hallo
Ich habe ein Spiel in Arbeit. Das besteht aus Render und Move Funktionen ( bis jetzt )
In der Move funktion die ungefähr ( bei mir ) 600x die Sekunde aufgerufen wird möchte ich nun eine verzweigung machen die dann reagiert wenn irgendeine Taste der Tastatur gedrückt wurde.
Also:
if( tastegedrückt() ) ...
Ganz wichtig das Programm darf nicht anhalten!
Ich habe schon mit _kbhit, kbhit, getch, und GetAsyncKeyState versucht leider ohne erfolg.
DankeFehlermeldung bitte!
Google - Dein Freund und Helfer
-
Hi
Windows/Linux?
Winapi-GUI, Konsole, SDL...?Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
"Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?
-
17.10.11 15:09 #3
Windows
Winapi GUIFehlermeldung bitte!
Google - Dein Freund und Helfer
-
WM_KEYDOWN und WM_KEYUP in den Eventhandler...
Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
"Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?
-
17.10.11 15:26 #5
Ähm ja ok daran habe ich auch schon gedacht. Allerdings wäre das dann auf das ganze spiel bezogen.
Ich will aber nur in der einen Funktion auf Tasten prüfen.
DankeFehlermeldung bitte!
Google - Dein Freund und Helfer
-
Tastendruck ist eine Windows message, die du als Event im WndProc bekommst und auf die du reagieren kannst.
Die einzige Möglichkeit mitten in der Verarbeitung von einem anderen Event die Nachrichtenschleife zu prüfen ist PeekMessage().
Ob zwischen den Nachrichten die da warten auch Tastendrücke sind, und ob die zu deiner Funktion passen musst du dann selber prüfen, aber selbst das geht nur, solange dein Fenster den Focus hat und das Event was du gerade verarbeitest zum selben Prozess gehört.
In jedem Fall hast du KEINE Chance das Programm dabei nicht anzuhalten, weil eine Anwendung (ohne Threads) nicht mehr als eine Sache auf einmal machen kann.
Deine Funktion wird inkl. aller PeekMessage() und was immer du sonst in der Funktion anstellst, den gesamten Rest der Anwendung auf Eis legen, bis die Funktion durch ist.
-
MSVC++: Was meinst du mit "auf ein Spiel bezogen, aber nur in der Funktion"?
Die Messages gibts unabhängig vom Spaßfaktor
Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
"Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?
-
18.10.11 23:14 #8
OK Ich habe es mir jetzt doch noch anderst überlegt

Ich habe es so gelöst: for schleife und dann GetAsyncKeyState(i); Ich weiß nicht gerade die Beste Lösung aber es Geht
DankeFehlermeldung bitte!
Google - Dein Freund und Helfer
-
Also das belastet die CPU sicher mehr als WM_KEYDOWN. Aber eine Lösung ist's auch.
Gruss
cwriterIntel inside - Idiot outside :-)
Ich schreibe in C und bin Anfänger.
______________________________
Falls ich eines Tages einen guten Beitrag schreiben werde, bitte bewerten und/oder Danke sagen.
Danke
-
19.10.11 10:08 #10
Naja also bei mir ist 01% CPU Last
Fehlermeldung bitte!
Google - Dein Freund und Helfer
-
Der Wert ist alles andere als genau.
Aber warum verwendest du eigentlich nicht WM_KEYDOWN und -UP?Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
"Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?
-
19.10.11 10:24 #12
Weil ich irgendwie keine Lust habe in meiner Engine die ganze Nachrichtenfunktion so um zu schreiben das sie mir nur dann werte gibt wenn ich sie brauche
Dann schreib ich lieber ne DirectInput Schnittstelle
MfGFehlermeldung bitte!
Google - Dein Freund und Helfer
Ähnliche Themen
-
Tabindex statt Tab-Taste mit Enter-Taste
Von tanjahouse im Forum Javascript & AjaxAntworten: 10Letzter Beitrag: 19.11.09, 10:06 -
Multi key Taste abfragen
Von Snowcrack im Forum .NET Windows FormsAntworten: 3Letzter Beitrag: 04.08.08, 10:38 -
Irgendeine Datei, die bei jedem vorhanden und gleichgroß ist?
Von multimolti im Forum Microsoft WindowsAntworten: 1Letzter Beitrag: 02.12.07, 12:45 -
MySQL Abfragen zu Access Abfragen umwandeln?
Von Falconbase im Forum Relationale DatenbanksystemeAntworten: 0Letzter Beitrag: 16.04.06, 15:34 -
filetype() gibt weder Fehler noch irgendeine Adere Ausgabe zurück!
Von the snake II im Forum PHPAntworten: 1Letzter Beitrag: 05.10.04, 21:08





Zitieren

Login






