Download de demo en de broncode voor Windows
Download de demo en de broncode voor Linux
Terug naar de tutorial INDEX
Op dit punt in de demo hebben we vijanden en wapens, maar de twee niet met elkaar omgaan. Om de kogels kunnen vijanden moeten we collision detectie toe te schieten.
Collision detection is zeer ingewikkeld onderwerp, is de focus van menig research paper. Wij kunnen weg met een zeer eenvoudige collision detectie systeem, omdat de reactie op alle botsingen in het spel het verwijderen van een van de botsende objecten zijn.
Een wapen zal worden verwijderd als het hits van een schip en een vijandelijk schip zal worden verwijderd als het botst met de speler.
Elk object dat is te botsen met andere objecten breidt een basisklasse genaamd CollisionObject.
< p> CollisionObject.h
Wij willen alleen objecten die actief betrokken zijn bij botsingen zijn. We willen alleen maar de objecten die actief worden betrokken bij een aanrijding zijn, zodat we breiden de PersistentFrameListener klasse, die ons de toegang tot de isActive functie geeft.
Dit laat de CollisionManager weten of het object moet deelnemen aan een botsing
/* * CollisionObject.h * * Auteur:. Matthew Casperson * E-mail: [email protected] * Website: http: //www. brighthub.com/hubfolio/matthew-casperson.aspx * /# ifndef COLLISIONOBJECT_H_ # definiëren COLLISIONOBJECT_H_ # include "Ogre.h" #include "PersistentFrameListener.h" using namespace Ogre; klasse CollisionObject: public PersistentFrameListener {public: CollisionObject (int collisionType) ; virtual ~ CollisionObject (); ongeldig Startup (); leegte Shutdown (); int GetCollisionType () const {return collisionType;}
De GetBoundingSphere functie is puur virtueel, wat betekent dat het door de uitbreiding van de klas te worden uitgevoerd. Deze functie moet een bol terug in de wereld van coördinaten dat grenzen van het object op het scherm
virtual Sphere GetBoundingSphere () = 0;.
De Collision functie wordt aangeroepen als een botsing wordt gedetecteerd tussen twee objecten. Het is aan de uitbreiding van de klas al of niet deel te nemen aan de botsing (zodat een vijand die wordt botsing met een vijand wapen zou niets doen in reactie op een botsing).
virtuele leegte Collision (CollisionObject * andere ) {} beschermd: int collisionType;} # endifCollisionObject.cpp
#include "CollisionObject.h" #include "CollisionManager.h" CollisionObject :: Collision
Aan de slag met Activeperl
- Draad Framing een Key Web Designing Tool:
- PushButton Tutorial Series - Tracking & amp; amp; Jumping
- C # - Het bouwen van een Fahrenheit /Celsius Converter
- Hoe je het MAC-adres van onze machine met behulp van VB .net krijgen?
- Network Security Management voor Grote Overheid, School, bedrijven en Homes
- C Object Identifiers
- Mobile Video Game Development: Een Quick Overview
- De C ++ String Class
- ASP.NET - C # - Met behulp van UserControls als Mail Templates
- Eenvoudige welkom en Print Console toepassing in C # ( C scherp) ( Dot Net )