*   >> lukeminen koulutus Artikkelit >> science >> programming

Making 3D-peli, jossa Ogre - Collision Detection

Lataa demo ja lähdekoodi WINDOWS

Lataa demo ja lähdekoodia Linux

TAKAISIN TUTORIAL INDEX

Tässä vaiheessa demo olemme vihollisia ja aseita, mutta kahta ei vuorovaikutuksessa. Jotta luodit voisi ampua vihollisia meidän täytyy lisätä törmäysten havaitseminen.

törmäystunnistin on hyvin monimutkainen aihe, joka painopiste monet tutkimus paperi. Voimme kuitenkin saada pois hyvin yksinkertainen törmäyksen tunnistusjärjestelmä koska vastaus kaikkiin törmäyksiä peli tulee olemaan poistetaan yksi törmäävän esineitä.

Ase poistetaan kun se osuu alus ja vihollinen alus poistetaan, jos se törmää pelaaja.

Jokainen esine, joka on ristiriidassa muiden esineiden ulottuu perustaa luokan nimeltä CollisionObject.

< p> CollisionObject.h

Me vain haluamme esineet, jotka ovat aktiivisia olla mukana törmäyksissä. Me vain haluamme nämä esineet, jotka ovat aktiivisia on osallisena törmäyksessä, joten laajennamme PersistentFrameListener luokka, joka antaa meille pääsyn IsActive toiminto. Tämä antaa CollisionManager tietää, jos kohde olisi osallistuttava törmäyksessä.

 /* * CollisionObject.

h * * Tekijä: Matthew Casperson * Sähköposti: [email protected] * Verkkosivusto: http: //www. brighthub.com/hubfolio/matthew-casperson.aspx * /# ifndef COLLISIONOBJECT_H_ # määritellä COLLISIONOBJECT_H_ # include "Ogre.h" #include "PersistentFrameListener.h" using namespace Ogre, luokka CollisionObject: julkinen PersistentFrameListener {julkinen: CollisionObject (int collisionType) ; virtuaalinen ~ CollisionObject (); mitätöi Startup (); void sammutus (); int GetCollisionType () const {palata collisionType;}

GetBoundingSphere toiminto on puhdasta virtuaalista, eli se on pantava täytäntöön laajentamalla luokka.

Tämä funktio palauttaa Sphere maailman koordinoi että rajat esine ruudulla.

 virtuaalinen Sphere GetBoundingSphere () = 0; 

Collision toimintoa kutsutaan, kun törmäys on havaittu kahden esineitä. Se on jopa ulottuu luokkaan vai ei osallistua törmäys (niin vihollinen, joka on törmätä vihollisen ase ei tekisi mitään vastauksena törmäys).

 virtuaalinen mitätön Collision (CollisionObject * muut ) {} suojattu: int collisionType,}, # endif 

CollisionObject.cpp

 # include "CollisionObject.h" #include "CollisionManager.

h" CollisionObject :: CollisionObject (int collisionType): collisionType (collisionType ) {COLLISIONMANAGER.AddCollisionObject (tämä);} CollisionObject :: ~ Collis

Page   <<       [1] [2] [3] [4] [5] [6] >>
Copyright © 2008 - 2016 lukeminen koulutus Artikkelit,https://koulutus.nmjjxx.com All rights reserved.