Extra2D/examples/flappy_bird/GameScene.h

73 lines
1.7 KiB
C
Raw Normal View History

// ============================================================================
// GameScene.h - 游戏主场景
// 描述: 游戏的核心场景,包含小鸟、水管、地面和得分系统
// ============================================================================
#pragma once
#include "BaseScene.h"
#include "Bird.h"
#include "Pipes.h"
#include "Ground.h"
#include "Number.h"
namespace flappybird {
/**
* @brief
*
*/
class GameScene : public BaseScene {
public:
/**
* @brief
*/
GameScene();
/**
* @brief
*/
void onEnter() override;
/**
* @brief
* @param dt
*/
void onUpdate(float dt) override;
private:
/**
* @brief
*/
void startGame();
/**
* @brief
*/
void onHit();
/**
* @brief
*/
void gameOver();
/**
* @brief
* @return
*/
bool checkCollision();
Bird* bird_ = nullptr; // 小鸟
Pipes* pipes_ = nullptr; // 水管管理器
Ground* ground_ = nullptr; // 地面
Number* scoreNumber_ = nullptr; // 得分显示
extra2d::Ptr<extra2d::Sprite> readySprite_; // "Get Ready" 提示
extra2d::Ptr<extra2d::Sprite> tutorialSprite_; // 操作教程提示
bool started_ = false; // 游戏是否已开始
bool gameOver_ = false; // 游戏是否已结束
int score_ = 0; // 当前得分
};
} // namespace flappybird