Métodos públicos | Atributos protegidos

Referencia de la Clase GameObject

Clase que abstrae la parte visual (Entity/SceneNode) de la colisionable (Body) de un elemento de juego. Más...

#include <gameObject.h>

Lista de todos los miembros.

Métodos públicos

 GameObject (Ogre::SceneManager *sceneManager)
 GameObject (Ogre::SceneManager *sceneManager, const Ogre::String &entityName, const Ogre::String &entityFile, const Ogre::String &nodeName)
 GameObject (Ogre::SceneManager *sceneManager, Ogre::SceneNode *sceneNode, Ogre::Entity *entity)
virtual ~GameObject ()
BodygetBody ()
void setBody (Body *body)
Ogre::SceneNode * getSceneNode ()
const Ogre::Vector3 & getPosition ()
void setPosition (const Ogre::Vector3 &position)
const Ogre::Vector3 & getScale ()
void setScale (const Ogre::Vector3 &scale)
const Ogre::Quaternion & getOrientation ()
void setOrientation (const Ogre::Quaternion &orientation)
virtual void update (Ogre::Real deltaT)
void synchronizeBody ()
void synchronizeSceneNode ()

Atributos protegidos

Ogre::SceneManager * _sceneManager
Ogre::SceneNode * _node
Ogre::Entity * _entity
Body_body
std::vector< Shape * > _shapes

Descripción detallada

Clase que abstrae la parte visual (Entity/SceneNode) de la colisionable (Body) de un elemento de juego.

Autor:
David Saltares Márquez
Fecha:
3-02-2011

GameObject se encarga de encapsular la parte visual (Ogre::SceneNode y Ogre::Entity) con el componente colisionable (Body) de los elementos del juego. Proporciona un método virtual GameObject::update para actualizar los elementos en cada iteración del bucle de juego pero es importante asegurarse de mantener sincronizadas la parte colisionable con la visual.

A la hora de modificar posición, escala u orientación del elemento de juego podemos hacerlo utilizando los métodos dispuestos para ello. No obstante, es posible recuperar el puntero a Body o SceneNode para trabajar con ellos. En tal caso, es imprescindible llamar a GameObject::synchronizeSceneNode o GameObject::synchronizeBody respectivamente. Así se sincronizará la parte visual con la colisionable o viceversa (según lo que se haya modificado).


Documentación del constructor y destructor

GameObject::GameObject ( Ogre::SceneManager *  sceneManager  ) 

Constructor

Parámetros:
sceneManager gestor de escena que controla la parte visual del elemento.
GameObject::GameObject ( Ogre::SceneManager *  sceneManager,
const Ogre::String &  entityName,
const Ogre::String &  entityFile,
const Ogre::String &  nodeName 
)

Constructor

Parámetros:
sceneManager gestor de escena que controla la parte visual del elemento.
entityName nombre de la entidad
entityFile fichero con el modelo tridimensional del elemento.
nodeName nombre del nodo de la entidad
GameObject::GameObject ( Ogre::SceneManager *  sceneManager,
Ogre::SceneNode *  sceneNode,
Ogre::Entity *  entity 
)

Constructor

Parámetros:
sceneManager gestor de escena que controla la parte visual del elemento
sceneNode nodo de escena
entity entidad cargada, parte visual
GameObject::~GameObject (  )  [virtual]

Destructor

Si están inicializados desvincula la entidad del nodo, retira el nodo de la escena y destruye a ambos. Si el body es válido (no apunta a NULL), lo destruye y elimina sus shapes.


Documentación de las funciones miembro

Body * GameObject::getBody (  ) 
Devuelve:
cuerpo colisionable que compone el objeto
const Ogre::Quaternion & GameObject::getOrientation (  ) 
Devuelve:
orientación del elemento de juego
const Ogre::Vector3 & GameObject::getPosition (  ) 
Devuelve:
posición del elemento de juego
const Ogre::Vector3 & GameObject::getScale (  ) 
Devuelve:
escala del elemento de juego
Ogre::SceneNode * GameObject::getSceneNode (  ) 
Devuelve:
nodo perteneciente al grafo de escena que compone el objeto.
void GameObject::setBody ( Body body  ) 
Parámetros:
body nuevo cuerpo colisionable que compondrá al objeto.

Si el cuerpo anterior era válido es destruido junto a la shapes que lo componían. Es importantes ser conscientes de que cuando se destruya el GameObject, el nuevo cuerpo y sus shapes serán destruidas.

void GameObject::setOrientation ( const Ogre::Quaternion &  orientation  ) 
Parámetros:
orientation nueva orientación del elemento de juego
void GameObject::setPosition ( const Ogre::Vector3 &  position  ) 
Parámetros:
position nueva posición del elemento de juego
void GameObject::setScale ( const Ogre::Vector3 &  scale  ) 
Parámetros:
scale nueva escala del elemento de juego
void GameObject::synchronizeBody (  ) 

Sincroniza el estado colisionable (Body) con el visual (SceneNode). Es imprescindible llamarlo tras haber actualizado el elemento de juego modificando sus parámetros visuales.

void GameObject::synchronizeSceneNode (  ) 

Sincroniza el estado visual (SceneNode) con el colisionable (Body). Es imprescindible llamarlo tras haber actualizado el elemento de juego modificando parámetros del body.

void GameObject::update ( Ogre::Real  deltaT  )  [virtual]
Parámetros:
deltaT incremento de tiempo en milisegundos desde la última actualización.

Por degecto no hace nada, está pensado para ser sobrecargado por clases especializadas.


Documentación de los datos miembro

Body* GameObject::_body [protected]
Ogre::Entity* GameObject::_entity [protected]
Ogre::SceneNode* GameObject::_node [protected]
Ogre::SceneManager* GameObject::_sceneManager [protected]
std::vector<Shape*> GameObject::_shapes [protected]

La documentación para esta clase fue generada a partir de los siguientes ficheros: