*   >> Lecture Éducation Articles >> science >> la programmation

Faire un jeu en 3D avec Ogre - Collision Detection

Téléchargez la démo et le code source pour Windows

Téléchargez la démo et SOURCE CODE DE

LE RETOUR DE LINUX AU index du tutoriel

A ce point dans la démo que nous avons des ennemis et des armes, mais les deux ne interagissent. Pour que les balles soient en mesure de tirer sur les ennemis, nous devons ajouter la détection de collision.

La détection de collision est un sujet très compliqué, étant l'objet de beaucoup d'un document de recherche.

Cependant, nous pouvons sortir avec un système de détection de collision très simple parce que la réponse à toutes les collisions dans le jeu sera le retrait de l'un des objets en collision. Une arme sera retirée quand il frappe un navire et un navire ennemi sera supprimée si elle entre en collision avec le joueur.

Chaque objet qui est d'entrer en collision avec d'autres objets étend une classe de base appelée CollisionObject.

< p> CollisionObject.h

Nous voulons seulement des objets qui sont actifs à être impliqués dans des collisions.

Nous voulons que ces objets qui sont actifs à être impliqué dans une collision, si nous étendons la classe PersistentFrameListener, ce qui nous donne accès à la fonction IsActive. Cela vous permettra de savoir si l'CollisionManager l'objet doit participer à une collision

 /* * * * CollisionObject.h Auteur:. Matthew Casperson * Email: [email protected] * Site web: http: //www. brighthub.com/hubfolio/matthew-casperson.aspx * /# ifndef COLLISIONOBJECT_H_ # définir COLLISIONOBJECT_H_ # include "Ogre.h" #include "PersistentFrameListener.

h" using namespace Ogre; CollisionObject de classe: PersistentFrameListener {public: CollisionObject (int collisionType) ; virtual ~ CollisionObject (); annuler démarrage (); void shutdown (); int GetCollisionType () const {return collisionType;}

La fonction GetBoundingSphere est virtuelle pure, ce qui signifie qu'il doit être mis en œuvre par la classe étendant. Cette fonction doit retourner une sphère dans le monde coordonnées qui délimite l'objet sur l'écran

 virtuelle Sphère GetBoundingSphere () = 0;.

La fonction de collision est appelée quand une collision est détectée entre deux objets. Il appartient à la classe étendant ou non de participer à la collision (si un ennemi qui est entré en collision avec une arme de l'ennemi ne rien faire en réponse à une collision).

 virtual void Collision (* CollisionObject autre ) {} protégée: int collisionType;}; #

Page   <<       [1] [2] [3] [4] [5] [6] >>
Copyright © 2008 - 2016 Lecture Éducation Articles,https://lecture.nmjjxx.com All rights reserved.