#pragma once #include "data.h" #include namespace pushbox { class PlayScene : public extra2d::Scene { public: explicit PlayScene(int level); void onEnter() override; void onUpdate(float dt) override; private: void updateMenuColors(); void executeMenuItem(); void updateSoundIcon(); void flush(); void setLevel(int level); void setStep(int step); void move(int dx, int dy, int direct); void gameOver(); int step_ = 0; int menuIndex_ = 0; Map map_{}; extra2d::Ptr font28_; extra2d::Ptr font20_; extra2d::Ptr levelText_; extra2d::Ptr stepText_; extra2d::Ptr bestText_; extra2d::Ptr restartText_; extra2d::Ptr soundToggleText_; extra2d::Ptr mapLayer_; extra2d::Ptr soundIcon_; extra2d::Ptr texWall_; extra2d::Ptr texPoint_; extra2d::Ptr texFloor_; extra2d::Ptr texBox_; extra2d::Ptr texBoxInPoint_; extra2d::Ptr texMan_[5]; extra2d::Ptr texManPush_[5]; }; } // namespace pushbox