Extra2D/examples/push_box/StartScene.h

69 lines
1.3 KiB
C++

// ============================================================================
// StartScene.h - Push Box 开始场景
// ============================================================================
#pragma once
#include "BaseScene.h"
#include <extra2d.h>
namespace pushbox {
/**
* @brief Push Box 开始场景(主菜单)
*/
class StartScene : public BaseScene {
public:
/**
* @brief 构造函数
*/
StartScene();
/**
* @brief 场景进入时调用
*/
void onEnter() override;
/**
* @brief 每帧更新
* @param dt 帧间隔时间
*/
void onUpdate(float dt) override;
private:
/**
* @brief 更新菜单颜色
*/
void updateMenuColors();
/**
* @brief 执行选中的菜单项
*/
void executeMenuItem();
/**
* @brief 开始新游戏
*/
void startNewGame();
/**
* @brief 继续游戏
*/
void continueGame();
/**
* @brief 退出游戏
*/
void exitGame();
extra2d::Ptr<extra2d::FontAtlas> font_;
extra2d::Ptr<extra2d::Button> startBtn_;
extra2d::Ptr<extra2d::Button> resumeBtn_;
extra2d::Ptr<extra2d::Button> exitBtn_;
extra2d::Ptr<extra2d::Button> soundBtn_;
int selectedIndex_ = 0;
int menuCount_ = 3;
};
} // namespace pushbox