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

游戏引擎

开发平台:

Visual C++

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