Aktuelle Zeit: 13.05.2025, 13:17

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Mehrere Eventreceiver
BeitragVerfasst: 24.02.2008, 17:15 
Offline
Benutzeravatar

Registriert: 17.02.2008, 14:08
Beiträge: 125
Hi,

ich wollte mal fragen ob es möglich ist mehrere EventReceiver zu benutzen.
Der Gedanke dahinter ist, dass ich dann in einer Klasse (zb Player) die Tastenabfragen kann und auf die privaten Variablen ohne Probleme zugreifen kann. Bei einem EventReceiver muss ich immer alles übergeben. Geht, finde ich aber nicht so toll.

MfG
FTC

_________________
Cold-Death
Magnon


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Mehrere Eventreceiver
BeitragVerfasst: 24.02.2008, 18:26 
Offline
Moderator
Benutzeravatar

Registriert: 25.03.2007, 18:11
Beiträge: 834
Wohnort: Hagen, NRW
IrrlichtDevice::setEventReceiver()

einfacher wäre es allerdings, wenn du deine Playerklasse von IEventReceiver erben lässt und dann die OnEvent methode in deinem Haupt Eventreceiver aufrust

_________________
Phenom X4 9950 BE | 6144MB DDR2-800 | GeForce 8800GT 512MB | Asus M3A32-MVP Deluxe | 2TB HDD | 520W Seasonic NT | Soprano Tower | Samsung 22" TFT + Fujitsu-Siemens 17" TFT + Toshiba 42" FullHD LCD | Windows 7 Proessional x64
Behind the Brain


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Mehrere Eventreceiver
BeitragVerfasst: 28.02.2008, 17:59 
Offline
Benutzeravatar

Registriert: 17.02.2008, 14:08
Beiträge: 125
Hi,

also SetEventReceiver scheint nur mit einem Receiver zu funktionieren.
Und die andere Lösung sollte sowas sein, oder?
Code:
bool MainApp::OnEvent(const SEvent& event)
{
   if (event.EventType == irr::EET_KEY_INPUT_EVENT)
   {
      switch(event.KeyInput.Key)
      {
      case KEY_ESCAPE:
         quit = true;
         return true;
      }
   }
   return player->OnEvent(event);
}

Das gibt aber eine Zugriffsverletzung bei "return player->OnEvent(event);". (im Code steht da natürlich nicht der klassenname sondern ein objekt der klasse)

MfG

Edit: ich sehe gerade, dass die OnEvent-funktion gar nicht angezeigt wird bei der player class. Ich nutze VC++.
Bei "MainApp::" kommt auch ein "OnEvent" zur Auswahl, bei "player::" nicht..

_________________
Cold-Death
Magnon


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Mehrere Eventreceiver
BeitragVerfasst: 28.02.2008, 18:26 
Offline
Moderator
Benutzeravatar

Registriert: 15.04.2007, 20:20
Beiträge: 505
Wohnort: Reelsen
Das scheint wohl daran zu liegen, dass player ein ungültiger Pointer ist, wenn das aufgerufen wird. Wird der erst später initialisiert?

_________________
Meine Gameengine :)
Bild


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Mehrere Eventreceiver
BeitragVerfasst: 28.02.2008, 18:34 
Offline
Benutzeravatar

Registriert: 17.02.2008, 14:08
Beiträge: 125
Ok, ich habs.
Stimmt ;) ich hatte das setEvent(this) zu früh gesetzt. Mir war nicht klar das die Funktion zu diesem Zeitpunkt schon aufgerufen wird.

MfG

_________________
Cold-Death
Magnon


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 9 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de