JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

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

dummes DInput Problem

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



Anmeldedatum: 29.02.2004
Beiträge: 55

Medaillen: Keine

BeitragVerfasst am: 09.09.2005, 11:47    Titel: dummes DInput Problem Antworten mit Zitat

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 Cool
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
OLiver
Super JLI'ler


Alter: 33
Anmeldedatum: 29.06.2003
Beiträge: 306
Wohnort: Jena
Medaillen: Keine

BeitragVerfasst am: 09.09.2005, 11:56    Titel: Antworten mit Zitat

Was ist mit "passiert nix" gemeint? Rolling Eyes
_________________
http://www.sieder25.org/ (Siedler 2 - Remake)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 09.09.2005, 12:00    Titel: Re: dummes DInput Problem Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
GreveN
JLI Master


Alter: 38
Anmeldedatum: 08.01.2004
Beiträge: 901
Wohnort: Sachsen - Dresden
Medaillen: Keine

BeitragVerfasst am: 09.09.2005, 12:25    Titel: Antworten mit Zitat

Sollte sicher ein Pointer sein.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Yahoo Messenger MSN Messenger
Pizzabroetchen
Junior JLI'ler



Anmeldedatum: 29.02.2004
Beiträge: 55

Medaillen: Keine

BeitragVerfasst am: 09.09.2005, 12:28    Titel: Antworten mit Zitat

@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 Shocked
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
Benutzer-Profile anzeigen Private Nachricht senden
Pizzabroetchen
Junior JLI'ler



Anmeldedatum: 29.02.2004
Beiträge: 55

Medaillen: Keine

BeitragVerfasst am: 09.09.2005, 16:34    Titel: Antworten mit Zitat

wie übergebe ich den richtig einen Zeiger auf ein Array, so das die Werte nach dem Funktionsaufruf auch übernohmen werden?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
OLiver
Super JLI'ler


Alter: 33
Anmeldedatum: 29.06.2003
Beiträge: 306
Wohnort: Jena
Medaillen: Keine

BeitragVerfasst am: 09.09.2005, 17:13    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 09.09.2005, 17:39    Titel: Re: dummes DInput Problem Antworten mit Zitat

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



Anmeldedatum: 29.02.2004
Beiträge: 55

Medaillen: Keine

BeitragVerfasst am: 09.09.2005, 21:37    Titel: Antworten mit Zitat

danke für eure hilfen

lsg daran das ich nur den zeiger, wie oliver schon sagte verändert habe und nicht den Inhalt Embarassed
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
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