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

游戏引擎

开发平台:

Visual C++

  1. // Sprite.h: interface for the CSprite class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_SPRITE_H__ABCAFE21_3E63_11D6_812C_5254AB37CDC9__INCLUDED_)
  5. #define AFX_SPRITE_H__ABCAFE21_3E63_11D6_812C_5254AB37CDC9__INCLUDED_
  6. #if _MSC_VER > 1000
  7. #pragma once
  8. #endif // _MSC_VER > 1000
  9. #include "camera.h"
  10. #include "heightmap.h"
  11. #include "cmath.h"
  12. #include "smfloader.h"
  13. #include "gunfire.h"
  14. /////////sprite type
  15. #define SENTINEL    0
  16. #define PATROL      1
  17. class CSprite  
  18. {
  19. public:
  20. CSprite();
  21. virtual ~CSprite();
  22. bool InitSprite(int id,VERTEX startPos,float roty,CSMFLoader *pSoldier,CSMFLoader *pWeapon);
  23.     void RenderSprite(bool noHarm);
  24. void UpdateSprite(bool freeze,bool noVisible);
  25. bool IsInSpriteBoundary(VERTEX pos);
  26. void Injure();
  27.     void ResetSpriteState();
  28. //////////////////////////////
  29. VERTEX       m_orgPos;
  30.     CCamera      m_Camera;
  31. float        m_Health;
  32. protected:
  33. void UpdateSpriteState();
  34. void UpdateSpriteAction();
  35. void Scan();
  36. void SetSpriteAction(int iAction);
  37. void DrawGunFire(bool noHarm);
  38.     void DrawSMFBoundary();
  39. CSMFLoader  *m_pSoldier;
  40. CSMFLoader  *m_pWeapon;
  41. CGunFire     m_cGunFire;
  42.     int          m_nID;
  43.     BOUNDARY_3D  m_boundary;
  44. CHeightmap   m_cHmap;
  45. CMath        m_cMath;
  46. float        m_RunSpeed;
  47. ///////////// Sprite state
  48. int          m_spriteType;
  49. VERTEX       m_destPos;
  50.     bool         m_bHearShot;
  51.     bool         m_bFindEnemy;
  52. bool         m_bDangerous;
  53. bool         m_bWounded;
  54. bool         m_bFire;
  55.     int          m_iAlarm;
  56. float        m_distFromViewer;
  57. /////////////model control
  58. int              startFrame;
  59. int              endFrame;
  60. int              curFrame;
  61. int              nextFrame;
  62.     float            percent;
  63.     float            interpolation;
  64. int              curAction;
  65. bool             bActionFinish;
  66. bool             bDrawWeapon;
  67. ///////develop mode
  68. };
  69. #endif // !defined(AFX_SPRITE_H__ABCAFE21_3E63_11D6_812C_5254AB37CDC9__INCLUDED_)