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

游戏引擎

开发平台:

Visual C++

  1. // Sprite.h: interface for the CSprite class.
  2. //作者:吴雪平  2002-6-17日修改
  3. //实现精灵的行为,人工智能可以在这里加入
  4. //////////////////////////////////////////////////////////////////////
  5. #if !defined(AFX_SPRITE_H__ABCAFE21_3E63_11D6_812C_5254AB37CDC9__INCLUDED_)
  6. #define AFX_SPRITE_H__ABCAFE21_3E63_11D6_812C_5254AB37CDC9__INCLUDED_
  7. #if _MSC_VER > 1000
  8. #pragma once
  9. #endif // _MSC_VER > 1000
  10. #include "camera.h"
  11. #include "ammomanager.h"
  12. #include "heightmap.h"
  13. #include "cmath.h"
  14. #define IDLE1 0
  15. #define RUN 1
  16. #define SHOT_STAND 2
  17. #define SHOT_SHOULDER 3
  18. #define JUMP 4
  19. #define IDLE2 5
  20. #define SHOT_FALLDOWN 6
  21. #define IDLE3 7
  22. #define IDLE4 8
  23. #define CROUCH 9
  24. #define CROUCH_CRAWL 10
  25. #define CROUCH_IDLE 11
  26. #define CROUCH_DEATH 12
  27. #define DEATH_FALLBACK 13
  28. #define DEATH_FALLFORWARD 14
  29. #define DEATH_FALLBACKSLOW 15
  30. #define IDLE1_START 0
  31. #define IDLE1_END 39
  32. #define RUN_START 40
  33. #define RUN_END 45
  34. #define SHOT_STAND_START 46
  35. #define SHOT_STAND_END 60
  36. #define SHOT_SHOULDER_START 61
  37. #define SHOT_SHOULDER_END 66
  38. #define JUMP_START 67
  39. #define JUMP_END 73
  40. #define IDLE2_START 74
  41. #define IDLE2_END 95
  42. #define SHOT_FALLDOWN_START 96
  43. #define SHOT_FALLDOWN_END 112
  44. #define IDLE3_START 113
  45. #define IDLE3_END 122
  46. #define IDLE4_START 123
  47. #define IDLE4_END 135
  48. #define CROUCH_START 136
  49. #define CROUCH_END 154
  50. #define CROUCH_CRAWL_START 155
  51. #define CROUCH_CRAWL_END 161
  52. #define CROUCH_IDLE_START 162
  53. #define CROUCH_IDLE_END 169
  54. #define CROUCH_DEATH_START 170
  55. #define CROUCH_DEATH_END 177
  56. #define DEATH_FALLBACK_START 178
  57. #define DEATH_FALLBACK_END 185
  58. #define DEATH_FALLFORWARD_START 186
  59. #define DEATH_FALLFORWARD_END 190
  60. #define DEATH_FALLBACKSLOW_START 191
  61. #define DEATH_FALLBACKSLOW_END 198
  62. class CSprite  
  63. {
  64. public:
  65. CSprite();
  66. virtual ~CSprite();
  67. bool InitSprite(int id,VERTEX startPos,float roty,int totalFrames,
  68.             float height,BOUNDARY_3D boundary,bool bControlled=false);
  69.     void ResetSpriteState(VERTEX resetPos,float rotY,int state);
  70. void DrawSprite();
  71. void UpdateSprite();
  72. void SetSpriteState(int state);
  73. void CheckState();
  74. //////////////////////////////
  75. //protected:
  76. void CheckSunVisible();
  77.     int          m_nID;
  78. bool         m_bControlled;
  79. bool         m_bAttacked;
  80.     bool         m_bAttacking;
  81. float        m_Health;
  82.     BOUNDARY_3D  m_Boundary;
  83.     CCamera         m_Camera;
  84. // CAmmoManager  m_cAmmoManger;
  85. CHeightmap   m_cHmap;
  86. CMath        m_cMath;
  87. bool         m_bHasWeapon;
  88. float        m_RunSpeed;
  89.     float        m_angleX;
  90.     float        m_height;
  91. int          m_nFrames;
  92. int          m_nState;
  93. int          m_stateStart;
  94. int          m_stateEnd;
  95. int          m_startFrame;
  96. int          m_endFrame;
  97. float        m_percent;
  98. };
  99. #endif // !defined(AFX_SPRITE_H__ABCAFE21_3E63_11D6_812C_5254AB37CDC9__INCLUDED_)