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

游戏引擎

开发平台:

Visual C++

  1. #ifndef _JUMPING_COIN_HPP_
  2. #define _JUMPING_COIN_HPP_
  3. class JumpingCoin: public GameObject
  4. {
  5. private:
  6. JSprite* mAnimatedCoin;
  7. float mAlpha;
  8. float mAlphaDelta;
  9. int mCol;
  10. int mRow;
  11. bool mGoingUp;
  12. TileMap* mMap;
  13. JQuad* mBanana;
  14. u8 mTileInfo;
  15. short mTile;
  16. public:
  17. JumpingCoin(GameStatePlay* app);
  18. virtual ~JumpingCoin();
  19. virtual void Update(float dt);
  20. virtual void Render();
  21. void Action(float x, float y);
  22. };
  23. JumpingCoin::JumpingCoin(GameStatePlay* app): GameObject(app)
  24. {
  25. mAnimatedCoin = new JSprite(mTexture, 97, 97, 30, 30);
  26. mAnimatedCoin->AddFrame(129,97,30,30);
  27. //mAnimatedCoin->AddFrame(129,97,30,30,true);
  28. mAnimatedCoin->AddFrame(97,97,30,30,true);
  29. mAnimatedCoin->SetHotSpot(15.0f, 15.0f);
  30. mMap = mApp->GetTileMap();
  31. mBanana = new JQuad(mTexture, 0.0f, 96.0f, 32.0f, 32.0f);
  32. mCurrAnimation = mAnimatedCoin;
  33. mAlpha = 255.0f;
  34. mXVelocity = 0.0f;
  35. mYVelocity = 0.0f;
  36. }
  37. JumpingCoin::~JumpingCoin()
  38. {
  39. delete mAnimatedCoin;
  40. }
  41. void JumpingCoin::Update(float dt)
  42. {
  43. if (mGoingUp)
  44. {
  45. if (mTileInfo == BLOCK_APPLE)
  46. {
  47.  mMap->SetTileInfo(mCol, mRow, 0);
  48. }
  49. }
  50. }
  51. void JumpingCoin::Render()
  52. {
  53. float x, y;
  54. mMap->GetPosition(&x, &y);
  55. mCurrAnimation->SetScale(0.8f, 0.8f);
  56. mCurrAnimation->SetPosition(mX-x, mY-y + 6.0f);
  57. mCurrAnimation->Render();
  58. }
  59. void JumpingCoin::Action(float x, float y)
  60. {
  61. mX = x;
  62. mY = y;
  63. mAlpha =0.0f;
  64. mAlphaDelta = mAlpha/1000.0f;
  65. mYVelocity = -0.16f;
  66. mCurrAnimation->SetAlpha(255.0f);
  67. mCurrAnimation->StartAnimation();
  68. SetActive(true);
  69. }
  70. #endif