-
Notifications
You must be signed in to change notification settings - Fork 0
class_entity
Les entites sont un des composants de base du moteur: les entites sont une des deux seules choses a etre jouees dans une scene (avec les scripts).
Une entite est donc un composant auquel on ajoute des attributs pour le caractariser. Par exemple, du point de vue du moteur, le heros du jeu, les ennemis, les balles qu'ils s'envoients, d'eventuels power-up, tous sont des entites et leur difference est seulement au niveau des attributs qui les composent.
Dans le schema classique, on cree toutes nos entites puis nous les ajoutons aux differentes scenes.
Pour utiliser une entite, c'est tres simple, il suffit de la declarer de la facon suivante
entity *entite = new entity;
Il faut ensuite equiper cette entite de divers attributs (voir attribute).
Les attributs principaux sont les suivants:
Pour creer une entite personnalisee, il faut la faire heriter de la classe entity
bien evidemment, et fournir a la classe fille des constructeurs et le destructeur et c'est tout.
L'utilite de creer une entite personnalisee est d'economiser du travail par la suite, en fait lorsque l'on cree une entite personnalisee, on ne fait qu'allouer des attributs dans ses constructeurs, ce qui fait que declarer cette entite par la suite sera plus rapide car on n'aura pas a la parametrer, ou tres peu
#ifndef __FOO_H__
#define __FOO_H__
#include "entity.h"
class foo : public entity {
public:
foo();
foo(scene* parent);
foo(scene* parent, sf::Vector2f initial_position);
foo(scene* parent, float ix, float iy);
foo(sf::Vector2f initial_position);
foo(float ix, float iy);
virtual ~foo();
};
#endif
#include "foo.h"
foo::foo() : entity() {
/* allocation et specification des attributs */
}
foo::foo(scene* parent) : entity(parent), foo() {}
foo::foo(scene* parent, sf::Vector2f initial_position) : entity(parent, initial_position), foo() {}
foo::foo(scene* parent, float ix, float iy) : entity(parent, sf::Vector2f(ix, iy)), foo() {}
foo::foo(sf::Vector2f initial_position) : entity(initial_position), foo() {}
foo::foo(float ix, float iy) : entity(sf::Vector2f(ix, iy)), foo() {}
foo::~foo() {}