Abfrage in einer While
-
wenn ich das nun in die schleife einfüge sagt der mir das GetKeyboardState neudefiniert wird, wenn ichs dann kompiliere, bekomme cih es auch irgentwie ihin ohne das die fehler medung kommt?
MfG Showball!
-
Hast Du etwa die Deklaration eingefügt ?!?
-
wie mache ich die denn? wie kann man denn eine funktion dekladieren?
-
wieso nimmst du nicht einfach GetAsyncKeyState?
dass müsste doch gehen.while (GetAsyncKeyState(VK_UP)) { // Mach was... }
-
oh habe das in der schleife, net in der bedingung gemacht^^
aber wie mace ich da jetzt eine bedingung in die schleife, muss ich jetzt unbedingt eine if davor setzen?
Und was ich nicht verstehe, wie kann ich das dann machen das nur diese taste gedrückt ist, weil das ist ja in variablen abgespeichert und das überprüft ja nur ob tasten gedrückt sind, aber wie amche ich jetzt die bedingung, also der überprüft ja ob die obige taste gedrückt ist, und wenn ich eine bedingung mache muss die so ausehen:
VK_UP = True
oder vertuhe ich mih jetzt, und wie bekomme ich das danna cu wieder in eine variable?
-
Eine gängige Lösung ist auch, sich ein globales Feld für die Tasten anzulegen:
bool keys[256];Jetzt kannst du in der WindowProcedure dieses Feld füllen:
... case WM_KEYDOWN: { keys[LOBYTE(wParam)] = true; } case WM_KEYUP: { keys[LOBYTE(wParam)] = false; } ...und den Tastenstatus in deiner Hauptschleife abfragen:
while(!keys[VK_ESCAPE]) { if(PeekMessage(&msg, hwnd, 0,0, PM_REMOVE) { TranslateMessage(&msg); DispatchMessage(&msg); } if(keys[VK_LEFT]) { ... } if(keys[VK_RIGHT]) { ... } }(Ich hab das jetzt nicht ausprobiert, das Prinzip sollte aber stimmen)
Grüße,
Martin
-
will ja das das wann in der while schleife ist eine variabkle hochgezählt wird, und das sind die pixlangaben im bild, aber wenn nun das bild außerhalb ist also nicht in der shcleife, ändert der das danna uch?
-
wenn ich das nun mache kommt folgender fehler:
c:\dokumente und einstellungen\dustin.trance\eigene dateien\visual studio 2005\projects\dwfds\dwfds\dwfds.cpp(51) : warning C4244: '=': Konvertierung von 'WPARAM' in 'char', möglicher Datenverlust
c:\dokumente und einstellungen\dustin.trance\eigene dateien\visual studio 2005\projects\dwfds\dwfds\dwfds.cpp(169) : error C2065: 'keys': nichtdeklarierter Bezeichner
c:\dokumente und einstellungen\dustin.trance\eigene dateien\visual studio 2005\projects\dwfds\dwfds\dwfds.cpp(169) : fatal error C1903: Weiterverarbeitung nach vorherigem Fehler nicht möglich; Kompilierung wird abgebrochen.Ich muss wohl key definieren, aber was soll ich definieren?
-
Hat JimmydaMage doch schon geposted?
-
oh hab das ganz übersehen sry!
Hmm wie bekomme ich das nunn hin, das die schleife nur alle 0.10 sekunden ausgeführt wird?
geht das mit dem gaz normalem sleep?