Jeg er igang med at lave noget, som jeg selv syntes man godt kan kalde et event system. Det skal fungere på følgende måde:
Der skal være en eventManager class, som alle der vil sende og modtage events skal have en pointer til. Når man så vil lave et event og sende det, skal de ske på følgende måde;
Man laver et event af typen Event, og en pointer til Noget event data af en type der nedarver fre IEventData.
eksempel:
EvtData_GameStarted* data = new EvtData_GameStarted("besked");
Event e(GAME_STARTED, data);
eventManager.triggerEvent(e);
det eventManager nu gør, er at kalde funktionen handleEvent(e) i alle klasser der lytter til GAME_STARTED events.
Problemet er at få det data man har sendt med eventet tilbage i handleEvent funktionen, da Event klassen kun har en pointer til IEventData, og ikke til den specifikke form for event data(her er det: EvtData_GameStarted som indeholder en streng, men det kunne også være et EvtData_ActorMoved der indholdt en pointer til en Actor osv.)
Er det overhovedet mugligt, eller skal jeg tænke hele mit event system om?
Indlæg senest redigeret d. 07.03.2009 13:45 af Bruger #13669