Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
underberg JLI'ler
Anmeldedatum: 11.01.2003 Beiträge: 153
Medaillen: Keine
|
Verfasst am: 30.05.2003, 09:46 Titel: DirectInpur *Bitte helft mir* |
|
|
So folgendes... Ich will die Tastatur abfragen... Und hab dafür folgenden Code:
Code: | LRESULT CALLBACK MessageHandler(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch(msg)
{
case WM_KEYDOWN:
{
if (wParam==0x25)
{
}
if (wParam==0x27)
{
}
if (wParam==0x26)
{
}
if (wParam==0x28)
{
}
if (wParam==VK_ESCAPE)
{
DestroyWindow(hWnd);
}
}
/*case WM_DESTROY:
{
CleanUpDirectDraw();
PostQuitMessage(0);
return 0;
break;
}*/
}
return (DefWindowProc(hwnd, msg, wParam, lParam));
} |
So hab aber zwei große Probleme...
1) Er akzeptiert immer nur eine Cursortaste... Daher wenn ich Oben und Links gleichzeitig drücke nimmt er nur Links...
2) Wenn ich WM_DESTROY wieder rein nehme, bricht er sofort das Programm ab...
Bitte helft mir... |
|
Nach oben |
|
|
The Lord of Programming Living Legend
Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 30.05.2003, 11:14 Titel: |
|
|
Du musst auf jeden Fall hinter jede case-Anweisung ein "break" setzen. Sonst werden die nächsten case-Anweisungen auch ausgeführt:
Code: | case WM_KEYDOWN:
{
//[...]
break;
}
case(... |
Zur ersten Frage wür ich dir DirectInput empfehlen. Da sollte das funzen? _________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
|
underberg JLI'ler
Anmeldedatum: 11.01.2003 Beiträge: 153
Medaillen: Keine
|
Verfasst am: 30.05.2003, 12:01 Titel: |
|
|
Kann ich daraus Schlussfolgern das ich mit meinem obigen Wert nicht zwei Tasten gleichzeitig drücken kann? |
|
Nach oben |
|
|
The Lord of Programming Living Legend
Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 30.05.2003, 12:20 Titel: |
|
|
Ja, ich glaube bei Windowscallbackfunktionen ist das so. Es kann ja nur ein Wert als wparam bzw. vparam übergeben werden und so können es nicht zwei Tasten auf einmal sein. _________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
|
Christian Rousselle Site Admin
Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 30.05.2003, 12:48 Titel: |
|
|
Als Alternative kannst du noch GetAsynKeyState() verwenden, mit dieser Fkt. kommst du an mehrere Tasten gleichzeitig.
Christian |
|
Nach oben |
|
|
underberg JLI'ler
Anmeldedatum: 11.01.2003 Beiträge: 153
Medaillen: Keine
|
Verfasst am: 30.05.2003, 12:53 Titel: |
|
|
Christian Rousselle hat Folgendes geschrieben: | Als Alternative kannst du noch GetAsynKeyState() verwenden, mit dieser Fkt. kommst du an mehrere Tasten gleichzeitig.
Christian |
Kannst du mir zufällig noch sagen, wie ich die rein bastel??? |
|
Nach oben |
|
|
Christian Rousselle Site Admin
Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 30.05.2003, 13:12 Titel: |
|
|
ja. Du hast doch bestimmt irgendwo deine Hauptnachrichtenschleife. wichtig ist, dass du die auf eine Lösung mit PeekMessage() umbaust (wenn du das Buch hast, denn steht es da). In dieser Schleife rufst du GetAsyncKeyState() auf.
C. |
|
Nach oben |
|
|
|