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

游戏引擎

开发平台:

Visual C++

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