59 lines
1.6 KiB
C++
59 lines
1.6 KiB
C++
/* [CONSTRUCTOR] Initialisation de la liste de xSprite
|
|
=========================================================*/
|
|
xSpriteGroup::xSpriteGroup(){
|
|
// _sprites = new vector<xSprite*>(0);
|
|
}
|
|
|
|
/* [ADD] Ajoute un xSprite au groupe
|
|
=========================================================*/
|
|
void xSpriteGroup::add(xSprite *s){
|
|
_sprites.push_back( s );
|
|
}
|
|
|
|
/* [REMOVE] Suppression d'un xSprite du groupe
|
|
=========================================================*/
|
|
void xSpriteGroup::remove(xSprite *s){
|
|
int index = -1; // on cherche l'indice du sprite
|
|
|
|
// On parcours la liste pour trouver l'indice
|
|
for( int i = 0 ; i < _sprites.size() ; i++ )
|
|
if( _sprites[i] == s ) index = i;
|
|
|
|
// Si on a pas trouve l'indice
|
|
if( index == -1 ) return;
|
|
|
|
// On supprime le sprite de la liste
|
|
_sprites.erase(_sprites.begin() + index );
|
|
|
|
}
|
|
|
|
/* [PUSH] Ajoute tous les xSprite du groupe a une surface parente
|
|
=========================================================*/
|
|
void xSpriteGroup::push(){
|
|
for( int i = 0 ; i < _sprites.size() ; i++ )
|
|
_sprites[i]->push();
|
|
}
|
|
|
|
/* [PULL] Retire une sprite de la surface parents
|
|
=========================================================*/
|
|
void xSpriteGroup::pull(){
|
|
for( int i = 0 ; i < _sprites.size() ; i++ )
|
|
_sprites[i]->pull();
|
|
}
|
|
|
|
|
|
|
|
/* [UPDATE] Mise a jour du rendu
|
|
=========================================================*/
|
|
void xSpriteGroup::update(){
|
|
if( _sprites.size() > 0 )
|
|
_sprites[0]->update();
|
|
}
|
|
|
|
|
|
/* [GET] Retourne le xSprite d'index donne
|
|
=========================================================*/
|
|
xSprite* xSpriteGroup::get(int i){
|
|
return _sprites[i];
|
|
}
|