Skip to content

class_entity

Cyprien Eymond Laritaz edited this page Aug 19, 2017 · 6 revisions

Entity Version finale

Introduction

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.

Guide

Utiliser une entite

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:

Creer une entite

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.

Pourquoi creer une entite personnalisee ?

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

Demonstration

foo.h
#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
foo.cpp
#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() {}