Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Pizzabroetchen Junior JLI'ler
Anmeldedatum: 29.02.2004 Beiträge: 55
Medaillen: Keine
|
Verfasst am: 09.09.2005, 11:47 Titel: dummes DInput Problem |
|
|
Hallo!
Ich will mir eine Klasse für DI schreiben, aber irgendwie liest der mir nicht den Tastaturpuffer bzw belegt in gar nicht
CPP: | bool CInputManager::GetKeyStates(int index)
{
if (FAILED(m_keyboard->GetDeviceState(sizeof(m_keyboardkeys),
(LPVOID)&m_keyboardkeys)
{
m_keyboard->Acquire();
}
return m_keyboardkeys[index];
} |
bool m_keyboardkeys[256] wird beim anlegen der Klasseninstanz erzeugt
m_keyboard auch
in Hauptprogramm habe ich dann versucht das ganze so abzufragen:
CPP: | CInputManager Input;
.......
if (Input.GetKeyStates(DIK_RETURN))
do bla bla;
|
Aber irgendwie macht der nichts......
auch mit dieser Funktion wo der ganze Tastaturpuffer übergeben wird passiert nix
CPP: | CInputManager::GetKeyboardStates(bool keyboard[])
{
if (FAILED(m_keyboard->GetDeviceState(sizeof(m_keyboardkeys),
(LPVOID)&m_keyboardkeys)
{
m_keyboard->Acquire();
}
keyboard=m_keyboardkeys;
} |
wenn ich dann im Hauptprogramm der Funktion ein Array übergebe und danach auswerten will, passiert auch nix
Wenn mir einer nen Tip geben könnte, wäre das Klasse |
|
Nach oben |
|
|
OLiver Super JLI'ler
Alter: 33 Anmeldedatum: 29.06.2003 Beiträge: 306 Wohnort: Jena Medaillen: Keine
|
Verfasst am: 09.09.2005, 11:56 Titel: |
|
|
Was ist mit "passiert nix" gemeint? _________________ http://www.sieder25.org/ (Siedler 2 - Remake) |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 09.09.2005, 12:00 Titel: Re: dummes DInput Problem |
|
|
CPP: | CInputManager::GetKeyboardStates(bool keyboard[])
{
if (FAILED(m_keyboard->GetDeviceState(sizeof(m_keyboardkeys),
(LPVOID)&m_keyboardkeys)
{
m_keyboard->Acquire();
}
keyboard=m_keyboardkeys;
} |
Was genau hat diese Funktion für einen Sinn? keyoard beommt zwar etwas zugewiesen dies verfällt aber nach dem verlassen der Funktion. _________________ "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse." |
|
Nach oben |
|
|
GreveN JLI Master
Alter: 38 Anmeldedatum: 08.01.2004 Beiträge: 901 Wohnort: Sachsen - Dresden Medaillen: Keine
|
Verfasst am: 09.09.2005, 12:25 Titel: |
|
|
Sollte sicher ein Pointer sein. |
|
Nach oben |
|
|
Pizzabroetchen Junior JLI'ler
Anmeldedatum: 29.02.2004 Beiträge: 55
Medaillen: Keine
|
Verfasst am: 09.09.2005, 12:28 Titel: |
|
|
@Oliver
na ja eigentlich sollte er den selbstgemachen Cursor bewegen ala
wenn RETURN gedrückt, dann bewege Cursorsprite
Funktioniert mit der Maus einwandfrei nur bei der Tastaur nicht, da er anscheinend immer FALSE zurück gibt
@Fallen
ich hatte in nem Buch nachgeschlagen, wie man Arrays übergibt und da stand wenn ich das so übergebe, dann übergibt der der Funktion nur nen Zeiger - sprich eigentlich müßte dann doch die Änderung nach dem Funktionsaufruf noch da sein
Aber die erste Methode (also eine einzelne Taste abfragen) funktioniert ja auch nicht
Selbst wenn ich mauell m_keyboardkeys[DIK_RETURN] auf TRUE setzte und dann den Aufruf mache klappts nichts. Sprich GetDeviceState setzt immer alles auf FALSE egal wie sehr ich auf return herum hämmere
Außer wenn ich GetDeviceState aus der Funktion rausnehme (DIK_RETURN mauell auf TRUE gesetzt) dann klappts und er bewegt den cursor.Also muss irgendwas bei GetDeviceState nicht klappen |
|
Nach oben |
|
|
Pizzabroetchen Junior JLI'ler
Anmeldedatum: 29.02.2004 Beiträge: 55
Medaillen: Keine
|
Verfasst am: 09.09.2005, 16:34 Titel: |
|
|
wie übergebe ich den richtig einen Zeiger auf ein Array, so das die Werte nach dem Funktionsaufruf auch übernohmen werden? |
|
Nach oben |
|
|
OLiver Super JLI'ler
Alter: 33 Anmeldedatum: 29.06.2003 Beiträge: 306 Wohnort: Jena Medaillen: Keine
|
Verfasst am: 09.09.2005, 17:13 Titel: |
|
|
Zitat: |
ich hatte in nem Buch nachgeschlagen, wie man Arrays übergibt und da stand wenn ich das so übergebe, dann übergibt der der Funktion nur nen Zeiger - sprich eigentlich müßte dann doch die Änderung nach dem Funktionsaufruf noch da sein
|
Es wird ein Zeiger übergeben, allerdings änderst du ja den Zeiger und nicht die Daten, deswegen wird da nix zugewiesen. _________________ http://www.sieder25.org/ (Siedler 2 - Remake) |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 09.09.2005, 17:39 Titel: Re: dummes DInput Problem |
|
|
CPP: | CInputManager::GetKeyboardStates(bool &keyboard[])
{
if (FAILED(m_keyboard->GetDeviceState(sizeof(m_keyboardkeys),
(LPVOID)&m_keyboardkeys)
{
m_keyboard->Acquire();
}
keyboard=m_keyboardkeys;
} |
sollte reichen _________________ "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse." |
|
Nach oben |
|
|
Pizzabroetchen Junior JLI'ler
Anmeldedatum: 29.02.2004 Beiträge: 55
Medaillen: Keine
|
Verfasst am: 09.09.2005, 21:37 Titel: |
|
|
danke für eure hilfen
lsg daran das ich nur den zeiger, wie oliver schon sagte verändert habe und nicht den Inhalt |
|
Nach oben |
|
|
|