Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
newby JLI'ler
Anmeldedatum: 17.08.2007 Beiträge: 106
Medaillen: Keine
|
Verfasst am: 19.04.2008, 08:14 Titel: char konvertierung |
|
|
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
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 |
|
|
Chriss Senior JLI'ler
Anmeldedatum: 18.08.2004 Beiträge: 267
Medaillen: Keine
|
Verfasst am: 19.04.2008, 08:28 Titel: |
|
|
einen char definiert man so
Die Defines für die Tasten sind zahlen.
Also
|
|
Nach oben |
|
|
newby JLI'ler
Anmeldedatum: 17.08.2007 Beiträge: 106
Medaillen: Keine
|
Verfasst am: 19.04.2008, 08:58 Titel: |
|
|
danke, aber switch nimmt kein char*. ;( wie muss ich key konvertieren damit ich switch benutzen kann? |
|
Nach oben |
|
|
David Super JLI'ler
Alter: 39 Anmeldedatum: 13.10.2005 Beiträge: 315
Medaillen: Keine
|
Verfasst am: 19.04.2008, 10:22 Titel: |
|
|
Wenn die Daten unbedingt über ein char* kommen müssen könntest du
verwenden. Sowas ist übrigens unschön:
CPP: | if(bKeyboard[tmpkey]) return TRUE;
else return FALSE; |
Nimm lieber:
CPP: | return bKeyboard[ tmpkey ]; |
|
|
Nach oben |
|
|
newby JLI'ler
Anmeldedatum: 17.08.2007 Beiträge: 106
Medaillen: Keine
|
Verfasst am: 19.04.2008, 10:55 Titel: |
|
|
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 |
|
|
Chriss Senior JLI'ler
Anmeldedatum: 18.08.2004 Beiträge: 267
Medaillen: Keine
|
Verfasst am: 19.04.2008, 12:01 Titel: |
|
|
CPP: | if(lpDIKeyboard == NULL) PrintText(20, 80, "Scheiße");
|
Was für eine Fehlerbehandlung
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 |
|
|
newby JLI'ler
Anmeldedatum: 17.08.2007 Beiträge: 106
Medaillen: Keine
|
Verfasst am: 19.04.2008, 12:20 Titel: |
|
|
Zitat: | Was für eine Fehlerbehandlung Laughing |
wen ich das jemals release steht das da nicht mehr.
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 |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
|
Nach oben |
|
|
The Lord of Programming Living Legend
Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 19.04.2008, 14:39 Titel: |
|
|
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 |
|
|
|