Создание игр » AI, DirectX 9, Featured » Создание игры. Противники.
Создание игры. Противники.
Пришла пора реализовать противников в создаваемой игре. Пока мы ограничимся самыми простыми противниками, которые будут просто лететь прямо и стрелять без разбору.
Так же, как и игрока, мы унаследуем создаваемый нами класс противников от CLiveObject, что бы у врагов сразу был функционал работы с жизнями и позицией на экране. Да и вообще, код будет очень похож на тот, что мы запрограммировали для игрока:
class CEnemy : public CLiveObject { //! Это текстура со спрайтом врага CTexturePtr m_pTex; //! Таймер стрельбы. Когда он меньше нуля можно стрелять. float fFireTimeOut; public: CEnemy(void); virtual ~CEnemy(void); //! функция отрисовки void Draw(); //! Функция апдейта void Update(float fDeltaTime); }; |
Двигаться все противники будут прямо и с одной и той же скоростью, потому в функции апдейта противника мы просто будем двигать их всех на одно и то же расстояние (которое зависит от передаваемого в функцию времени:
void CEnemy::Update( float fDeltaTime ) { Move(0, 100*fDeltaTime); } |
В этой же функции мы в следующем
Функция рендера (отрисовки) игрового врага будет полностью аналогична такой же функции у игрока (кстати, потом этот функционал, наверное, стоит вынести прям в класс живого объекта, что бы не дублировать код).
Создавать новых врагов на игровом уровне пока будет просто случайным образом. Скажем, вот так:
std::vector<CEnemy> vecEnemies; // делкарация // где-то в основном цикле игры if ( (rand()&127)==127) // в конструкторе врага случайно генерится его позиция vecEnemies.push_back(CEnemy()); |
Этот урок по созданию игр опять получился каким-то очень коротким. Пишите, если кому-то что-то будет непонятно. Хотя, судя по отсутствию комментариев в предыдущих уроках, то ли всем всё понятно, то ли просто всё равно )))
Качаем проект с исходным кодом и данными к этому уроку по созданию игр. Так же можно скачать просто дему игры.
Раздел: AI, DirectX 9, Featured · Теги: AI, Создание игр
Здравствуйте, очень благодарен за уроки, на счет детальности, меня всё устраивает.
Отлично. Спасибо за отзыв на урок!
очень хорошие уроки, я недавно стал изучать с++, да и вообще программирование в целом, но даже для меня понятно все за исключением функций которых не знаю, но и то примерно понимаю для чего они.
Спасибо на добром слове
Большое спасибо за уроки многое знал ,но мозгов не хватало все это в кучу собрать
Аналогично! Спасибо за урок!