GameElement

GameElement stellt das eigentliche Verhalten und die Eigenschaften eines Aktuers in einem Game dar. [Mehr ...]

Vererbung

Basisklassen(n)   abgeleitete Klassen
  SRect
Container
  STimerEvent
GameElement
DockedElement
FollowElement
FixedElement
MovedElement

Attribute

public:

Attribut Typ Beschreibung
active bool
birthingDelay int wenn ungleich Null ist das die Verzögerungszeit in 10ms bis zum liveState_live
bounceBackMode float für OnHit_BounceBack
0 = keine Abfälschung
1 = als hätte dieses Element eine Wölbung
disableHitTest BOOL
group DWORD Bitmuster, je Gruppe ein Bit, 1=zugehörig zur Gruppe
liveState int
points int Punkte die bei Treffen etc. gewährt werden plus/minus
pParent GameElement *
state int
typ int Für den Spielprogrammierer frie verwendbarer typ, um z.B. Freund und Feind zu unterscheiden

protected:

Attribut Typ Beschreibung
color COLORREF
moveTypeMask DWORD Bitmuster
showType DWORD Bitmuster

private:

Attribut Typ Beschreibung
timerID int

Operationen

public:

Name Parameter Rückgabewert Beschreibung
attachAtTail GameElement* pEle void
getActivity bool gibt den Status des Elementes zurück. Elemente die nicht mehr getriggert werden sollen sind inaktiv.
getClassName SString gibt den Namen der Element-Klasse zurück.
moveBy int dx,
int dy,
bool notifyChilds=true
void bewegt das Element um die angegebene Differenz. Untergeordnete Elemente werden benachrichtigt.
moveTo int x,
int y,
bool notifyChilds=true
bool bewegt das Element zur angegebenen Position. Untergeordnete Elemente werden informiert.
notifyOnParentMove void wird aufgerufen wenn das übergeordnete Element bewegt wurde.
onTimerEvent UINT_PTR timerID,
DWORD dwTime,
LPARAM userData,
void* userPointer
void Timer-Ereignis
receiveMousePos int x, int y void wird aufgerufen wenn eine neue mausposition verfügbar ist.
setDisableHitTest bool disable=true void erlaubt oder verbietet den Test auf Treffer.
setLiveState int newLiveState void setzt den Lebensstatus eines GameElementes.
setTimer int millisec=10 void Startet den Timer im Intervallmopdus.

protected:

Name Parameter Rückgabewert Beschreibung
doCheckForHit GameElement& item bool
doInit void wird aufgerufen wenn das Element initialisiert wird.
doPrepareGame void wird aufgerufen wenn das Spiel zum Start vorbereitet wird. Das Element muss alle nötigen Initialisierungen durchführen
doStartGame void wird aufgerufen unmittelbar bevor das Spiel gestartet wird.
doTimer void wird mit jedem Timer-Intervall aufgerufen.
getType int Gibt den Typ des Speilelementes zurück.
initElement void Standardinitialisierung des Elementes
onChildDeleted void Wird aufgerufen wenn ein beinhaltetes Element (contained) gelöscht wird.
onDied void
onHit GameElement& ele,
bool activ
void wird aufgerufen wenn ein Treffer mit einem anderen GameElement ermittelt wurde.
onInit void wird aufgerufen wenn das Element initialisiert wird.
onKeyDown int vkeyCode,bool first void Wird beim drücken oder wiederholen (wegen langen halten) einer Taste aufgerufen.
onLButtonDown WORD keys,
int xpos,
int ypos
void Behandlungsroutine für das Drücken der linken Maustaste.
onParentMove GameElement& parent void Wird aufgerufen wenn das übergeordnete Element (Container) bewegt wurde.
onPrepareGame void wird aufgerufen wenn das Spiel zum Start vorbereitet wurde. Das Element muss alle nötigen Initialisierungen durchführen
onShow SDevice& screen void Behandlungsroutine für das Neuzeichnen des Elementes
onStartGame void wird aufgerufen wenn das Spiel gestartet wurde.
onTimer void wird mit jedem Timer-Intervall aufgerufen.

Detailbeschreibung GameElement

GameElement stellt das eigentliche Verhalten und die Eigenschaften eines Aktuers in einem Game dar.


GameElemnet ist Träger der Informationen (Model); Jedes Gameelement ist Ereignisgesteuert und wird von einem Timer getriggert.

Funktionsbeschreibungen

attachAtTail(GameElement* pEle) void

doCheckForHit(GameElement& item) bool

doInit() void

wird aufgerufen wenn das Element initialisiert wird.

doPrepareGame() void

wird aufgerufen wenn das Spiel zum Start vorbereitet wird. Das Element muss alle nötigen Initialisierungen durchführen

doStartGame() void

wird aufgerufen unmittelbar bevor das Spiel gestartet wird.

doTimer() void

wird mit jedem Timer-Intervall aufgerufen.

getActivity() bool

gibt den Status des Elementes zurück. Elemente die nicht mehr getriggert werden sollen sind inaktiv.

getClassName() SString

gibt den Namen der Element-Klasse zurück.

getType() int

Gibt den Typ des Speilelementes zurück.

Sollte überschrieben werden wenn es nicht Null ist.

initElement() void

Standardinitialisierung des Elementes

moveBy(int dx, int dy, bool notifyChilds=true) void

bewegt das Element um die angegebene Differenz. Untergeordnete Elemente werden benachrichtigt.

Rückgabe:

void x-Differenz
void y-Differenz
void Benachritigung der untergeordneten Elemente erlauben

moveTo(int x, int y, bool notifyChilds=true) bool

bewegt das Element zur angegebenen Position. Untergeordnete Elemente werden informiert.

Parameter:

notifyOnParentMove() void

wird aufgerufen wenn das übergeordnete Element bewegt wurde.

onChildDeleted() void

Wird aufgerufen wenn ein beinhaltetes Element (contained) gelöscht wird.

onDied() void

onHit(GameElement& ele, bool activ) void

wird aufgerufen wenn ein Treffer mit einem anderen GameElement ermittelt wurde.

Parameter:

aktiv true wenn selbst aktiv gewesen

onInit() void

wird aufgerufen wenn das Element initialisiert wird.

onKeyDown(int vkeyCode,bool first) void

Wird beim drücken oder wiederholen (wegen langen halten) einer Taste aufgerufen.

So können mehrfach onKeyDown(..) folgen bis ein onKeyUp(..) erfolgt.

Beispiel: Bsp:

BOOL isControl=GetKeyState(VK_CONTROL) & 0x80;
BOOL isShift=GetKeyState(VK_SHIFT) & 0x80;
//////// Taste Strg+F9 ////////
if(vkeyCode==VK_F9 && isControl)
{
  ......
}

Parameter:

vkeyCode virtual KeyCode, z.B. VK_ESC, VK_TAB, VK_1
first true, wenn die Taste erstmals gedrückt wird

onLButtonDown(WORD keys, int xpos, int ypos) void

Behandlungsroutine für das Drücken der linken Maustaste.

Parameter:

xpos Client-X-Koordinate des Ereignisses
ypos Client-Y-Koordinate des Ereignisses
keys Tastenstatus
  • MK_CONTROL Die Steuerungstaste ist gedrückt
  • MK_LBUTTON Die linke Maustaste ist gedrückt
  • MK_MBUTTON Die mittlere Maustaste ist gedrückt
  • MK_RBUTTON Die rechte Maustaste ist gedrückt
  • MK_SHIFT Die Umschalttaste ist gedrückt
  • MK_XBUTTON1 Windows 2000: Der erste Zusatz-Knopf ist gedrückt.
  • MK_XBUTTON2 Windows 2000: Der zweite Zusatz-Knopf ist gedrückt.

onParentMove(GameElement& parent) void

Wird aufgerufen wenn das übergeordnete Element (Container) bewegt wurde.

Parameter:

onPrepareGame() void

wird aufgerufen wenn das Spiel zum Start vorbereitet wurde. Das Element muss alle nötigen Initialisierungen durchführen

onShow(SDevice& screen) void

Behandlungsroutine für das Neuzeichnen des Elementes

Parameter:

screen Device auf dem gezeichnet werden soll

onStartGame() void

wird aufgerufen wenn das Spiel gestartet wurde.

onTimer() void

wird mit jedem Timer-Intervall aufgerufen.

onTimerEvent(UINT_PTR timerID, DWORD dwTime, LPARAM userData, void* userPointer) void

Timer-Ereignis

receiveMousePos(int x, int y) void

wird aufgerufen wenn eine neue mausposition verfügbar ist.

Parameter:

setDisableHitTest(bool disable=true) void

erlaubt oder verbietet den Test auf Treffer.

Parameter:

erlauben/unterdrücken true/false

setLiveState(int newLiveState) void

setzt den Lebensstatus eines GameElementes.

Parameter:

liveState_unborn 100,
liveState_birthing 200,
liveState_live 300,
liveState_dying 400,
liveState_died 500

setTimer(int millisec=10) void

Startet den Timer im Intervallmopdus.

Parameter:

millisec Timerintervall in ms