Container

Container ist eine Basisklasse für Elemente die wiederum Elemente enthalten können. [Mehr ...]

Vererbung

Basisklassen(n)   abgeleitete Klassen
  SRect
Container
GameElement

Attribute

protected:

Attribut Typ Beschreibung
list GameElement* ** internes Array der Listenelemente
listsize int aktuelle Größe der Liste
memsize int aktuell reservierter Speicherplatz der Liste

Operationen

public:

Name Parameter Rückgabewert Beschreibung
add int Fügt ein leeres Element an die Liste an.
add GameElement* element int Fügt ein Element zur Liste hinzu.
checkForHit GameElement& item,
SPointerList* pHits=NULL
BOOL Ermittelt ob dieses Element sich mit dem anderen Elemente berührt.
clear void Löscht alle untergeordneten Elemente. Der Container wird geleert.
getAt int pos GameElement* & Liefert ein Element der Liste.
getBuffer GameElement* ** Liefert den internen Datenpuffer.
getSize int Liefert die aktuelle Listengröße.
initGame void
insertAt int pos int Fügt ein leeres Element in die Liste ein.
insertAt int pos,
GameElement* element
int Fügt ein Element in die Liste ein.
isEmpty BOOL Gibt aus, ob die Liste leer ist.
isOverlapped GameElement& item GameElement* Ermittelt ob dieses Element sich mit dem anderen Elemente überlappt.
keyDown int vkeyCode,bool first void Wird beim drücken oder wiederholen (wegen langen halten) einer Taste aufgerufen.
lButtonDown DWORD keys,
int xpos,
int ypos
void Behandlungsroutine für das Drücken der linken Maustaste.
mouseMove WORD keys, int x, int y void Wird ausgelöst, wenn die Maus über den Clientbereich bewegt wird.
newElement GameElement* item,
SPoint point
void fügt dem Container ein neues Element hinzu.
newElement GameElement* item,
SRect rect
void Registriert das neue Element und Positioniert es im beliebig Rechteck.
newElement GameElement* item void fügt dem Container ein neues Element hinzu.
operator[] int pos GameElement* & Zugriffsoperator per Index.
prepareGame bool wird aufgerufen bevor das Spiel angezeigt und gestartet wird.
removeAll void Löscht alle Elemente aus der Liste.
removeAt int pos void Löscht ein Element aus der Liste.
removeChild GameElement* item bool Entfernt das Element aus der Zuordung, zerstört es aber nicht.
removeElement GameElement* item void
setAt int pos,
GameElement* value
BOOL Ändert den Wert eines Eintrages.
show SDevice& screen void Behandlungsroutine für das Neuzeichnen des Elementes
startGame void wird aufgerufen wenn das Spiel gestartet wird. Alle Elemente werden getriggert.
updateState void behandelt eventuelle State-Wechsel

protected:

Name Parameter Rückgabewert Beschreibung
doFinalize void Kündigt dem Container an dass er zerstört wird. Der Kontainer muss seinen Inhalt aufräumen.
newElementInit GameElement* item void Fordertz den Container auf das neue Element zu initialisieren.
onChange int itemPos void Ereignis, dass ausgelöst wird, wenn der Inhalt geändert wurde.
onMouseMove WORD keys, int x, int y void Wird ausgelöst, wenn die Maus über den Clientbereich bewegt wird.
onMove void Wird aufgerufen wenn das Element bewegt werden soll.
resize unsigned int size void Ändert die Größe des für die Liste reservierten Speichers.

Detailbeschreibung Container

Container ist eine Basisklasse für Elemente die wiederum Elemente enthalten können.


Mit dem Container können hierarchische Elementstrukturen aufgebaut werden.

Funktionsbeschreibungen

add() int

Fügt ein leeres Element an die Liste an.

Rückgabe:

int Position des eingefügten Elementes

add( GameElement* element) int

Fügt ein Element zur Liste hinzu.

Das Element wird am Ende der Liste angefügt.

Parameter:

element das neue Listenelement

Rückgabe:

int Position des eingefügten Elementes

checkForHit(GameElement& item, SPointerList* pHits=NULL) BOOL

Ermittelt ob dieses Element sich mit dem anderen Elemente berührt.

Parameter:

item Zeiger auf das andere Element.

Rückgabe:

BOOL true/false, getroffen/nicht getroffen

clear() void

Löscht alle untergeordneten Elemente. Der Container wird geleert.

doFinalize() void

Kündigt dem Container an dass er zerstört wird. Der Kontainer muss seinen Inhalt aufräumen.

getAt(int pos) GameElement* &

Liefert ein Element der Liste.

Das entsprechende Element der Liste wird zurückgegeben. Bei einem Zugriff auf einen Index außerhalb der Listengröße wird nach einer Fehlermeldung wenn möglich das erste oder das letzte Listenelement zurückgegeben.

Parameter:

pos Index des gewünschten Elements

Rückgabe:

GameElement* & das ausgewählte Listenelement

getBuffer() GameElement* **

Liefert den internen Datenpuffer.

getSize() const int

Liefert die aktuelle Listengröße.

initGame() void

insertAt(int pos) int

Fügt ein leeres Element in die Liste ein.

Die Liste wird entsprechend vergrößert. Es muss eine gültige Position (zwischen 0 und der Listengröße) angegeben werden.

Parameter:

pos Position, an der eingefügt werden soll

Rückgabe:

int Position des eingefügten Elements oder -1 bei ungültiger Positionsangabe

insertAt(int pos, GameElement* element) int

Fügt ein Element in die Liste ein.

Das Element wird an der angegebenen Stelle eingefügt. Die Liste wird entsprechend vergrößert. Es muss eine gültige Position (zwischen 0 und der Listengröße) angegeben werden.

Parameter:

pos Position, an der eingefügt werden soll
element einzufügendes Element.

Rückgabe:

int Position des eingefügten Elements oder -1 bei ungültiger Positionsangabe

isEmpty() BOOL

Gibt aus, ob die Liste leer ist.

isOverlapped(GameElement& item) GameElement*

Ermittelt ob dieses Element sich mit dem anderen Elemente überlappt.

Parameter:

item Zeiger auf das andere Element.

Rückgabe:

GameElement* Zeiger auf das überlappende Element

keyDown(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

lButtonDown(DWORD keys,int xpos,int ypos) void

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

Parameter:

mouseMove(WORD keys, int x, int y) void

Wird ausgelöst, wenn die Maus über den Clientbereich bewegt wird.

Parameter:

x Client-X-Koordinate des Ereignisses
y Client-Y-Koordinate des Ereignisses

newElement(GameElement* item, SPoint point) void

fügt dem Container ein neues Element hinzu.

Parameter:

item Zeiger auf das neue Element.
point Startposition des neuen Elementes.

newElement(GameElement* item, SRect rect) void

Registriert das neue Element und Positioniert es im beliebig Rechteck.

newElement(GameElement* item) void

fügt dem Container ein neues Element hinzu.

Parameter:

item Zeiger auf das neue Element.

newElementInit(GameElement* item) void

Fordertz den Container auf das neue Element zu initialisieren.

Parameter:

onChange(int itemPos) void

Ereignis, dass ausgelöst wird, wenn der Inhalt geändert wurde.

Parameter:

itemPos Position des geänderten / neuen Items, wenn die Positionsangabe nicht möglich ist (z.B. removeAt() ) wird -1 übergeben

onMouseMove(WORD keys, int x, int y) void

Wird ausgelöst, wenn die Maus über den Clientbereich bewegt wird.

Parameter:

x Client-X-Koordinate des Ereignisses
y 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.

onMove() void

Wird aufgerufen wenn das Element bewegt werden soll.

operator[](int pos) GameElement* &

Zugriffsoperator per Index.

Ermöglicht den Zugriff auf die Listenelemente per Index-Operator ([]). Es sind nur gültige Positionsangaben möglich.

Parameter:

pos Index des gewünschten Elements

Rückgabe:

GameElement* & Das gewünschte Element.

prepareGame() bool

wird aufgerufen bevor das Spiel angezeigt und gestartet wird.

removeAll() void

Löscht alle Elemente aus der Liste.

removeAt(int pos) void

Löscht ein Element aus der Liste.

Das Element an der angegebenen Position wird gelöscht. Die Position muss einen gültigen Wert (zwischen 0 und Listengröße-1) enthalten.

Parameter:

pos Position des zu löschenden Elements

removeChild(GameElement* item) bool

Entfernt das Element aus der Zuordung, zerstört es aber nicht.

removeElement(GameElement* item) void

resize(unsigned int size) void

Ändert die Größe des für die Liste reservierten Speichers.

Parameter:

size Anzahl der Listenelemente für die Speicher benötigt wird

setAt(int pos, GameElement* value) BOOL

Ändert den Wert eines Eintrages.

Der Wert des angegebenen Eintrages wird überschrieben. Die Position muss einen gültigen Wert enthalten.

Parameter:

pos Position, an der geändert werden soll
value neuer Wert

Rückgabe:

BOOL Änderung durchgeführt

show(SDevice& screen) void

Behandlungsroutine für das Neuzeichnen des Elementes

Parameter:

screen Device auf dem gezeichnet werden soll

startGame() void

wird aufgerufen wenn das Spiel gestartet wird. Alle Elemente werden getriggert.

updateState() void

behandelt eventuelle State-Wechsel