JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=ab872b0be1ff5f366249a6e47afcbbfcMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

DirectInpur *Bitte helft mir*

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
underberg
JLI'ler



Anmeldedatum: 11.01.2003
Beiträge: 153

Medaillen: Keine

BeitragVerfasst am: 30.05.2003, 10:46    Titel: DirectInpur *Bitte helft mir* Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 30.05.2003, 12:14    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
underberg
JLI'ler



Anmeldedatum: 11.01.2003
Beiträge: 153

Medaillen: Keine

BeitragVerfasst am: 30.05.2003, 13:01    Titel: Antworten mit Zitat

Kann ich daraus Schlussfolgern das ich mit meinem obigen Wert nicht zwei Tasten gleichzeitig drücken kann?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 30.05.2003, 13:20    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Christian Rousselle
Site Admin


Alter: 48
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 30.05.2003, 13:48    Titel: Antworten mit Zitat

Als Alternative kannst du noch GetAsynKeyState() verwenden, mit dieser Fkt. kommst du an mehrere Tasten gleichzeitig.

Christian
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
underberg
JLI'ler



Anmeldedatum: 11.01.2003
Beiträge: 153

Medaillen: Keine

BeitragVerfasst am: 30.05.2003, 13:53    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Christian Rousselle
Site Admin


Alter: 48
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 30.05.2003, 14:12    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum