*   >> Чтение Образование Статьи >> science >> programming

Создание 3D-игры с Огре - Столкновение Detection

<р> Скачать демо и исходники ДЛЯ WINDOWS

<р> Скачать демо и исходники для Linux

<р> Возврат к учебнику ИНДЕКС

<р > На данный момент в демо мы имеем врагов и оружия, но два не взаимодействуют. Для того, чтобы пули, чтобы иметь возможность стрелять врагов, нам нужно добавить обнаружение столкновений.

<Р> Обнаружение столкновений является очень сложным предметом, будучи в центре внимания многих научно-исследовательской работе.

Тем не менее, мы можем уйти с очень простой системой обнаружения столкновения, потому что ответ на все столкновения в игре будет удаление одного из сталкивающихся объектов. Оружие будет удален, когда она попадает на корабль и вражеский корабль будет удален, если он сталкивается с игроком.

<Р> Каждый объект, который является сталкиваться с другими объектами расширяет базовый класс CollisionObject.

< р> CollisionObject.h

<р> Мы хотим только объекты, которые являются активными, участвуют в столкновениях.

Мы хотим только те объекты, которые являются активными участвовать в столкновении, так что мы расширим класс PersistentFrameListener, который дает нам доступ к IsActive функции. Это позволит CollisionManager знать, если объект должен участвовать в столкновении

 /* * * * CollisionObject.h Автор:. Мэтью Касперсон * E-mail: * [email protected] Сайт: HTTP: //WWW. brighthub.com/hubfolio/matthew-casperson.aspx * /# IfNDef COLLISIONOBJECT_H_ # определить COLLISIONOBJECT_H_ # включить "Ogre.h" #include "PersistentFrameListener.

h", используя пространства имен Ogre; класс CollisionObject: общественная PersistentFrameListener {общественности: CollisionObject (INT collisionType) ; Виртуальный ~ CollisionObject (); аннулированию Startup (); Выключение недействительными (); INT GetCollisionType () {вернуть строительства collisionType;} <р> Функция GetBoundingSphere чисто виртуальной, это означает, что он должен быть реализован, проходящей класса. Эта функция должна возвращать Сферу в мировых координатах, что оценки объекта на экране

 виртуальная сфера GetBoundingSphere () = 0;.

<Р> Функция Столкновение называется, когда столкновение обнаружено между двумя объектами. Это до выступающей класса или не участвовать в столкновении (так врага, который при столкновении с вражеским оружием ничего не будет делать в ответ на столкновения).

 виртуальный недействительными Столкновение (CollisionObject * прочее ) {} защищены: INT collisionType;}; # ENDIF <р> CollisionObject.cpp 

 #in

Page   <<       [1] [2] [3] [4] [5] [6] >>
Copyright © 2008 - 2016 Чтение Образование Статьи,https://ru.nmjjxx.com All rights reserved.