我是 C++ 新手,作为一名大学项目,我们正在构建一个 2D 平台游戏,我最近读到拥有一堆游戏状态而不是一个带有游戏状态的全局变量是个好主意(这就是我现在所拥有的)但我不知道该怎么做。
目前这是我的实现:
class GameState
{
public:
virtual ~GameState(){};
virtual void handle_events() = 0;
virtual void logic() = 0;
virtual void render() = 0;
};
class Menu : public GameState
{
public:
Menu();
~Menu();
void handle_events();
void logic();
void render();
};
然后我有一个 GameState 类型的全局变量:
游戏状态 *currentState = NULL;
在我的 Main 我定义 currentState 并调用它的方法:
int main(){
currentState = new Menu();
currentState.handle_events();
}
我怎样才能实现一个堆栈或类似的东西从那个到这样的东西:
int main(){
statesStack.push(new Menu());
statesStack.getTop().handle_events();
}