Weasel.hpp
上传用户:zhj2929
上传日期:2022-07-23
资源大小:28772k
文件大小:2k
源码类别:

游戏引擎

开发平台:

Visual C++

  1. #ifndef _WEASEL_HPP
  2. #define _WEASEL_HPP
  3. class Weasel: public MoveableObject
  4. {
  5. private:
  6. JSprite* mRun;
  7. JSprite* mDie;
  8. TileMap* mMap;
  9.     int     dead;
  10. u8 mTileInfo;
  11. public:
  12. Weasel(GameStatePlay* app);
  13. virtual ~Weasel();
  14. virtual void Update(float dt);
  15. virtual void HitLeft();
  16. virtual void HitRight(int left, int right, int row);
  17. void Spawn(int col, int row);
  18. void die();
  19. int aLive();
  20. };
  21. void Weasel::die()
  22. {       
  23. mCurrAnimation = mDie;
  24. dead  = 1 ;
  25. }
  26. int Weasel::aLive()
  27. {
  28. if(dead==0)
  29. return 1;
  30. else
  31. return 0;
  32. }
  33. Weasel::Weasel(GameStatePlay* app): MoveableObject(app)
  34. {
  35.     mMap = mApp->GetTileMap();
  36. mRun = new JSprite(mTexture, 225,160,80,85);
  37. mRun->SetHotSpot(0.0f, 80.0f);
  38. mRun->AddFrame(300,160,80,85);
  39. mRun->AddFrame(380,160,80,85);
  40. mRun->SetDuration(200.0f);
  41. mRun->StartAnimation();
  42. mDie = new JSprite(mTexture,225,160,80,85);
  43. mDie->SetHotSpot(0.0f, 77.0f);
  44. mDie->AddFrame(225,251,71,80);
  45. mDie->AddFrame(330,224,93,100);
  46. mDie->SetDuration(300.0f);
  47. mDie->StartAnimation();
  48. mCurrAnimation = mRun;
  49. mYRenderOffset = 6.0f;
  50. mXVelocity = -DEFAULT_WALK_SPEED/2;
  51. mFlipped = false;
  52. mHScale = 0.80f;
  53. mVScale = 0.80f;
  54. mLeftAdjustment = 23;
  55. mRightAdjustment = 47;
  56. mHitLeftAdjustment = 2;
  57. mHitRightAdjustment = 46;
  58. mFallLeftAdjustment = -20;
  59. mFallRightAdjustment = -10;
  60. mRealHeight = 60;
  61. dead = 0;
  62. }
  63. Weasel::~Weasel()
  64. {
  65. delete mRun;
  66. delete mDie;
  67. }
  68. void Weasel::Update(float dt)
  69. {
  70.     if(dead)
  71. dead++;
  72. if(dead<350)
  73.   MoveableObject::Update(dt);
  74. else
  75.   mActive = false;
  76. }
  77. void Weasel::Spawn(int col, int row)
  78. {
  79. mX = (float)(col<<TILE_SHIFT);
  80. mY = (float)((row+1)<<TILE_SHIFT) - 1.0f;
  81. SetActive(true);
  82. }
  83. void Weasel::HitLeft()
  84. {
  85. mXVelocity = DEFAULT_WALK_SPEED/2;
  86. mCurrAnimation->SetFlip(true);
  87. }
  88. void Weasel::HitRight(int left, int right, int row)
  89. {
  90. mXVelocity = -DEFAULT_WALK_SPEED/2;
  91. mCurrAnimation->SetFlip(false);
  92. }
  93. #endif