JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

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

char konvertierung

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
newby
JLI'ler



Anmeldedatum: 17.08.2007
Beiträge: 106

Medaillen: Keine

BeitragVerfasst am: 19.04.2008, 09:14    Titel: char konvertierung Antworten mit Zitat

ich weiß das ist wohl ein dummes thema, ich verstehs aber trotztdem nicht. Ich habe mir per DirectInput den Zustand der Tastatur geholt und in bKeyboard gespeichert. Jetzt hab ich eine Funktion geschrieben, die eine bestimmte Taste überprüft:

CPP:
BOOL GetKey(char* key)
    {

        char* tmpkey;
        switch(key)
        {
            case "a":
                tmpkey = DIK_A;
            case "b":
                tmpkey = DIK_B;
            //[...]
        }



        if(bKeyboard[tmpkey]) return TRUE;
        else return FALSE;
    }


ich bin wohl ein bischen zu verwöhnt von php Wink
Ich hab schon versucht die ganzen strings zu konvertieren und alles, funktioniert aber nie. Wisst ihr wie ich die Funktion ändern muss damit das geht?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Chriss
Senior JLI'ler



Anmeldedatum: 18.08.2004
Beiträge: 267

Medaillen: Keine

BeitragVerfasst am: 19.04.2008, 09:28    Titel: Antworten mit Zitat

einen char definiert man so
CPP:
char myChar = 'a';


Die Defines für die Tasten sind zahlen.

Also
CPP:
int tmpkey = DIK_A;
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
newby
JLI'ler



Anmeldedatum: 17.08.2007
Beiträge: 106

Medaillen: Keine

BeitragVerfasst am: 19.04.2008, 09:58    Titel: Antworten mit Zitat

danke, aber switch nimmt kein char*. ;( wie muss ich key konvertieren damit ich switch benutzen kann?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
David
Super JLI'ler


Alter: 39
Anmeldedatum: 13.10.2005
Beiträge: 315

Medaillen: Keine

BeitragVerfasst am: 19.04.2008, 11:22    Titel: Antworten mit Zitat

Wenn die Daten unbedingt über ein char* kommen müssen könntest du

CPP:
switch ( key[ 0 ] )


verwenden. Sowas ist übrigens unschön:

CPP:
if(bKeyboard[tmpkey]) return TRUE;
        else return FALSE;


Nimm lieber:

CPP:
return bKeyboard[ tmpkey ];
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
newby
JLI'ler



Anmeldedatum: 17.08.2007
Beiträge: 106

Medaillen: Keine

BeitragVerfasst am: 19.04.2008, 11:55    Titel: Antworten mit Zitat

das sollte funktionieren, hab aber ein neues Problem. lpDIKeyboard->GetDeviceState füllt mein bKeyboard array nicht mit werten. Woran kann das liegen?

CPP:
BOOL GetKeyboardState(int i = 0)
    {
        int error = 0;

        if(lpDIKeyboard == NULL) PrintText(20, 80, "Scheiße");

        if(FAILED(lpDIKeyboard->GetDeviceState(sizeof(bKeyboard), (LPVOID)&bKeyboard)))
        {
            lpDIKeyboard->Acquire();
            if(i == 0) GetKeyboardState(1);
            return FALSE;
        }
}


edit:
genau genommen enthällt bKeyboard Werte, aber weder true noch false.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Chriss
Senior JLI'ler



Anmeldedatum: 18.08.2004
Beiträge: 267

Medaillen: Keine

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

CPP:
if(lpDIKeyboard == NULL) PrintText(20, 80, "Scheiße");

Was für eine Fehlerbehandlung Laughing


Ist deine Funktion vollständig?
Du gibst ja nur in der Fehlerbehandlung FALSE zurück aber sonst an keiner anderen Stelle.

Da sollte der Compiler schon meckern.
Hast du mal geprüft ob die Tastatur initialisiert wurde oder ob deine Funktion FALSE zurück gibt?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
newby
JLI'ler



Anmeldedatum: 17.08.2007
Beiträge: 106

Medaillen: Keine

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

Zitat:
Was für eine Fehlerbehandlung Laughing


wen ich das jemals release steht das da nicht mehr. Laughing

die getkeyboardstate muss eigentlich nichts zurückgeben, nur die private member variable bkeyboard setzen, damit getkey darauf zugreifen kann.

lpDI != NULL,
lpDIKeyboard != NULL

<edit>
loooooooool!!!!!!!!! ich wusste nicht das es einen unterschied macht dass ich BOOL oder bool schreibe!!! daran lags!!!

habs gelöst, hab einfach eine switch mit if else ersetzt. Kostet das deutlich mehr Resourcen?
</edit>
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jonathan_Klein
Living Legend


Alter: 36
Anmeldedatum: 17.02.2003
Beiträge: 3431
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 19.04.2008, 14:14    Titel: Antworten mit Zitat

sollte nicht messbar sein.
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
The Lord of Programming
Living Legend


Alter: 36
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 19.04.2008, 15:39    Titel: Antworten mit Zitat

Bitte in Zukunft den Edit-Button verwenden, anstatt drei Mal hintereinander zu posten, ist saumäßig unübersichtlich und unnötig. Danke...
_________________
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
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik 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