descargar la demo y el código fuente PARA WINDOWS
descargar la demo y el código fuente para Linux
VOLVER A EL INDICE TUTORIAL
En este punto de la demo que tenemos enemigos y armas, pero los dos no interactuamos. A fin de que las balas sean capaces de disparar a los enemigos que tenemos que añadir la detección de colisiones.
La detección de colisiones es un tema muy complicado, siendo el foco de muchos un trabajo de investigación.
Sin embargo, podemos llegar lejos con un sistema muy simple de detección de colisiones debido a que la respuesta a todas las colisiones en el juego será la eliminación de uno de los objetos que chocan. Un arma se eliminará cuando se realiza un barco y un barco enemigo se eliminará si choca con el jugador.
Cada objeto que se va a chocar con otros objetos se extiende una clase base llamada CollisionObject.
< p> CollisionObject.h
Sólo queremos objetos que son activos de participar en las colisiones.
Sólo queremos esos objetos que están activas estar involucrado en una colisión, por lo que extendemos la clase PersistentFrameListener, que nos da acceso a la función IsActive. Esto permitirá que el CollisionManager sabe si el objeto debe participar en una colisión
/* * * CollisionObject.h. * Autor: Mateo Casperson * Email: [email protected] * Sitio web: http: //www. brighthub.com/hubfolio/matthew-casperson.aspx * /# ifndef COLLISIONOBJECT_H_ # definir COLLISIONOBJECT_H_ # incluyen "Ogre.h" #include "PersistentFrameListener.h" using namespace Ogre; clase CollisionObject: PersistentFrameListener pública {public: CollisionObject (int collisionType) ; virtuales ~ CollisionObject (); anular de inicio (); void apagado (); int GetCollisionType () const {return collisionType;}
La función GetBoundingSphere es virtual pura, lo que significa que tiene que ser implementado por la clase que se extiende. Esta función debe devolver una Esfera en coordenadas del mundo que los límites del objeto en la pantalla
virtual de Esfera GetBoundingSphere () = 0;.
La función de colisión se llama cuando se detecta una colisión entre dos objetos. Depende de la clase que se extiende o no a participar en la colisión (por lo que un enemigo que está colisionando con un arma enemigo no haría cualquier cosa en respuesta a una colisión).
virtual de vacío Collision (CollisionObject * otra ) {} protegida: int collisionType;}; # endifCollisionObject.cpp
Primeros pasos con Activeperl
- Añadir Streaming de audio a su Website
- Creación de una lista Box
- El objeto HTML Archivo Attribute
- Aplicación de consola en Reflexión en C # 1.
1 y 2.0 ( Dot Net )
- C Basic Input Y Output
- Sobre la escritura Blogs
- Cómo centrar un mensaje de una línea en un C ++ program
- Mejor 7 Aplicaciones Android Para Entertainment
- Pseudo-Types en Php
- Algunos Javascript predefinidas Objects