пустот Enemy :: Collision (CollisionObject * прочее) {если (в противном> GetCollisionType () == PLAYER_WEAPON_CT) {* Оружие Оружие = static_cast (другой ); this-> щиты - = оружейного> GetDamage (); если (this-> Щиты GetCollisionType () == PLAYER_CT) {Shutdown (); }} <р> Класс BasicEnemy реализует функцию GetBoundingSphere помощью встроенного в функции getWorldBoundingSphere, которая доступна на всех Огре MovableObjects (практически все визуальные объекты Огре).
Сфера BasicEnemy :: GetBoundingSphere () {вернуть это- > Сетка-> getWorldBoundingSphere ();} <р> Изменения для оружия, пули и классы игрока схожи. Вы можете взглянуть на исходный код, чтобы увидеть конкретные изменения, внесенные в этих классах.<Р> main.cpp
<р> Основная функция обновлена запуск и завершение работы класс CollisionManager.
#include "OgreEngineManager.h" #include "WeaponDatabase.h" #include "EnemyDatabase.h" #include "GameLevel.h" #include "CollisionManager.h" #include "IrrKlangEngineManager.h" #if OGRE_PLATFORM == OGRE_PLATFORM_WIN32 # определить WIN32_LEAN_AND_MEAN # включить "windows.h" INT WINAPI WinMain (HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine, INT) #elseint основной (INT ARGC, символ ** ARGV) #endif {ENGINEMANAGER.AddNewResourceLocation (ResourceLocationDefinition ("файловую систему", "../../media", "Общие")); ENGINEMANAGER.AddNewResourceLocation (ResourceLocationDefinition ("Страна", "../../media/media.zip", "Общие")); если (ENGINEMANAGER.Startup (STD :: строка ("plugins.cfg"), STD