AmmoManager.cpp
上传用户:hkb425
上传日期:2007-06-16
资源大小:34191k
文件大小:2k
源码类别:

游戏引擎

开发平台:

Visual C++

  1. // AmmoManager.cpp: implementation of the CAmmoManager class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #include "stdafx.h"
  5. #include "AmmoManager.h"
  6. #include "texture.h"
  7. #include "math.h"
  8. //////////////////////////////////////////////////////////////////////
  9. // Construction/Destruction
  10. //////////////////////////////////////////////////////////////////////
  11. CAmmoManager::CAmmoManager()
  12. {
  13.   
  14. }
  15. CAmmoManager::~CAmmoManager()
  16. {
  17. }
  18. bool CAmmoManager::InitAmmoManager()
  19. {
  20.     CTexture cTexture;
  21.     if(!cTexture.MakeAlphaTextureBind("texture/smoke.bmp",    &texid))return false;
  22.      return true;
  23. }
  24. void CAmmoManager::LaunchRocket(VERTEX  startPos,float rotx,float roty )
  25. {
  26.     NORMAL direction;
  27.     direction.nx=-cosf(rotx*0.0174533f)*sinf(roty*0.0174533f);
  28.     direction.ny=-sinf(rotx*0.0174533f);
  29.     direction.nz=-cosf(rotx*0.0174533f)*cosf(roty*0.0174533f);
  30. LaunchRocket(startPos,rotx,roty ,direction);
  31. }
  32. void  CAmmoManager::LaunchRocket(VERTEX  startPos,float rotx,float roty ,NORMAL normal)
  33. {
  34. int  index=0;
  35. bool bSuccess=false;
  36. while(index<MAXROCKET && (!bSuccess))
  37. {
  38. if(m_rocketList[index].m_life==0)
  39. {
  40. m_rocketList[index].InitRocket(startPos,rotx,roty,normal,texid);
  41. bSuccess=true;
  42. }
  43.         index++;
  44. }
  45. }
  46. void  CAmmoManager::UpdateAmmoManager()
  47. {
  48. for(int i=0;i<MAXROCKET;i++)
  49. {
  50. if(m_rocketList[i].m_life>0) //flying
  51. {
  52.             m_rocketList[i].UpdateRocket();
  53. m_rocketList[i].DrawRocket();
  54. }
  55. }
  56. }
  57. void  CAmmoManager::DrawAmmoManager()
  58. {
  59.     m_rifle.DrawRifleShot();
  60. }
  61. //////////////////////////////////////////
  62. ////////////////////////////////////////
  63. /////////////////////////////////////////////
  64. void CAmmoManager::RifleFire(VERTEX  startPos,float rotx,float roty )
  65. {
  66.     NORMAL direction;
  67.     direction.nx=-cosf(rotx*0.0174533f)*sinf(roty*0.0174533f);
  68.     direction.ny=-sinf(rotx*0.0174533f);
  69.     direction.nz=-cosf(rotx*0.0174533f)*cosf(roty*0.0174533f);
  70. m_rifle.LunchBullet(1,startPos,rotx,roty , direction);
  71. }