Hero.h
上传用户:pfmy85
上传日期:2007-01-07
资源大小:22k
文件大小:1k
源码类别:

DirextX编程

开发平台:

Visual C++

  1. // Hero.h: interface for the CHero class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_HERO_H__00555C84_3B90_11D3_9B59_0080C8E05391__INCLUDED_)
  5. #define AFX_HERO_H__00555C84_3B90_11D3_9B59_0080C8E05391__INCLUDED_
  6. #if _MSC_VER > 1000
  7. #pragma once
  8. #endif // _MSC_VER > 1000
  9. #include "IsoType.h"
  10. #include "PackFile.h"
  11. class CHero  
  12. {
  13. public:
  14. CHero();
  15. virtual ~CHero();
  16. public:
  17. enum HERO_ACTION
  18. {
  19. ACTION_HT=0,
  20. ACTION_ST,
  21. ACTION_WL,
  22. ACTION_FM,
  23. ACTION_LM,
  24. ACTION_QM,
  25. ACTION_AS,
  26. ACTION_AT,
  27. ACTION_AW,
  28. ACTION_CNT
  29. };
  30. static const char* m_szHeroAction[ACTION_CNT];
  31. POINT m_ptSpriteSize[ACTION_CNT];
  32. public:
  33. bool Create(CDDDevice* pDDDevice,
  34. LPCTSTR lpszName,
  35. POINT* pSize,
  36. CPackFileManager* pPackFileManager=NULL);
  37. void SetViewRect(LPRECT lprcView);
  38. void Draw(CDDSurface* pDestSurface, LPRECT pRect = NULL);
  39. void ServeIt(__int64 nTime);
  40. bool SetAction(CHero::HERO_ACTION eAction);
  41. bool SetDirection(DIRECTION eDir);
  42. void SetPos(int x, int y);
  43. void Move(CDXIsoMap* pMap, DIRECTION eDir);
  44. HERO_ACTION m_eAction; // 当前动作
  45. DIRECTION m_eDirection; // 当前方向
  46. CDXSprite* m_pAction[ACTION_CNT];
  47. int m_nFrames[ACTION_CNT]; // 各动作单方向的帧数
  48. int m_nCurFrame; // 当前动作的帧数计数
  49. int m_nPosX; // 底部中点的相对位置
  50. int m_nPosY; // 相对于地图视窗
  51. RECT m_rcView;
  52. };
  53. #endif // !defined(AFX_HERO_H__00555C84_3B90_11D3_9B59_0080C8E05391__INCLUDED_)