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

游戏引擎

开发平台:

Visual C++

  1. #ifndef _BAD_FLOWER_HPP_
  2. #define _BAD_FLOWER_HPP_
  3. class BadFlower: public GameObject
  4. {
  5. private:
  6. JSprite* mFlower;
  7. float mUpperLimit;
  8. float mLowerLimit;
  9. public:
  10. BadFlower(GameStatePlay* app);
  11. virtual ~BadFlower();
  12. virtual void Update(float dt);
  13. virtual void Render();
  14. void Spawn(int col, int row);
  15. };
  16. BadFlower::BadFlower(GameStatePlay* app): GameObject(app)
  17. {
  18. mFlower = new JSprite(mTexture, 353, 97, 62, 74);
  19. mFlower->AddFrame(417,97,62,74);
  20. mFlower->SetHotSpot(31.0f, 74.0f);
  21. mFlower->SetDuration(200);
  22. mCurrAnimation = mFlower;
  23. mXVelocity = 0.0f;
  24. mYVelocity = 0.0f;
  25. }
  26. BadFlower::~BadFlower()
  27. {
  28. delete mFlower;
  29. }
  30. void BadFlower::Update(float dt)
  31. {
  32. mY += (mYVelocity*dt);
  33. if (mYVelocity < 0.0f)
  34. {
  35. if (mY < mUpperLimit)
  36. {
  37. mY = mUpperLimit;
  38. mYVelocity *= -1;
  39. }
  40. }
  41. else
  42. {
  43. if (mY > mLowerLimit)
  44. {
  45. mY = mLowerLimit;
  46. mYVelocity *= -1;
  47. }
  48. }
  49. mCurrAnimation->Update(dt);
  50. }
  51. void BadFlower::Render()
  52. {
  53. float x, y;
  54. mMap->GetPosition(&x, &y);
  55. //mCurrAnimation->SetColor(ARGB((int)mAlpha, 255, 255, 255));
  56. //mCurrAnimation->SetScale(0.8f, 0.8f);
  57. mCurrAnimation->SetPosition(mX-x, mY-y);
  58. //mEngine->EnableTextureFilter(false);
  59. mCurrAnimation->Render();
  60. //mEngine->EnableTextureFilter(true);
  61. }
  62. void BadFlower::Spawn(int col, int row)
  63. {
  64. mX = (float)(col<<TILE_SHIFT)+32.0f;
  65. mY = (float)((row+2)<<TILE_SHIFT);
  66. mLowerLimit = mY;
  67. mUpperLimit = mY - 128.0f;
  68. mYVelocity = -(BLOCK_SPEED/4);
  69. mCurrAnimation->StartAnimation();
  70. SetActive(true);
  71. }
  72. #endif