EnemyList.cpp
资源名称:g.rar [点击查看]
上传用户:laitongbao
上传日期:2021-02-20
资源大小:8176k
文件大小:2k
源码类别:

射击游戏

开发平台:

Visual C++

  1. // EnemyList.cpp: implementation of the EnemyList class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #include "stdafx.h"
  5. #include "EnemyList.h"
  6. #include "Playership.h"
  7. #include "MachineGun.h"
  8. #include "LaserGun.h"
  9. //////////////////////////////////////////////////////////////////////
  10. // Construction/Destruction
  11. //////////////////////////////////////////////////////////////////////
  12. EnemyList::EnemyList()
  13. {
  14. this->collision = new CollisionDetector();
  15. }
  16. void EnemyList::AddEnemy(Enemy1*enemy)
  17. {
  18. list.push_front(enemy);
  19. }
  20. void EnemyList::RemoveEnemy(Enemy1*enemy)
  21. {
  22. list.remove(enemy);
  23. }
  24. void EnemyList::Clear()
  25. {
  26. list.clear();
  27. }
  28. void EnemyList::DoFrame()
  29. {
  30. std::list<Enemy1*>::iterator iter;
  31. for(iter = list.begin();iter != list.end();++iter)
  32. {
  33. Enemy1*enemy = (*iter);
  34. if(!enemy->alive)
  35. {
  36. delete enemy;
  37. iter = list.erase(iter);
  38. }
  39. }
  40. for(iter = list.begin();iter != list.end();++iter)
  41. {
  42. Enemy1*enemy = (*iter);
  43. //enemy doframe
  44. enemy->DoFrame();
  45. //hit test
  46. if(collision->N_P_Collision(enemy->mesh ,g_pship->gun1->emit,4.f,true))
  47. enemy->Damage(g_pship->gun1->damage);
  48. if(collision->N_P_Collision(enemy->mesh ,g_pship->gun2->emit,4.f,true))
  49. enemy->Damage(g_pship->gun2->damage);
  50. if(collision->N_P_Collision(g_pship->mesh ,enemy->gun1->emit,4.f,true))
  51. g_pship->Damage(enemy->gun1->damage);
  52. if(collision->N_P_Collision(g_pship->mesh ,enemy->gun2->emit,4.f,true))
  53. g_pship->Damage(enemy->gun2->damage);
  54. if(TransitionController::GetPosition(enemy->mesh).z < -100.f)
  55. enemy->alive = false;
  56. }
  57. }
  58. EnemyList::~EnemyList()
  59. {
  60. }