C++ 如何简单地管理游戏状态?c++;

C++ 如何简单地管理游戏状态?c++;,c++,directx,C++,Directx,嗨,我是管理游戏状态的新手,我正在尝试使用枚举列表更改不同的状态 enum class GENERAL_STATE : int { menu = 1, gamestart = 2, }; 以及具有获取和设置状态的方法的header类 class GameControl { private: GENERAL_STATE generalState; public: GameControl(); ~GameControl(); GENERAL_STATE getGeneralState()

嗨,我是管理游戏状态的新手,我正在尝试使用枚举列表更改不同的状态

enum class GENERAL_STATE : int {
menu = 1,
gamestart = 2,
};
以及具有获取和设置状态的方法的header类

class GameControl {
private:

GENERAL_STATE generalState;

public:

GameControl();
~GameControl();

GENERAL_STATE getGeneralState() { return generalState; }
void setGeneralState(GENERAL_STATE gens) { generalState = gens; }
};
我已经设置了指针,使用

GameControl*    gameControl;
在我的游戏循环中,我添加了

switch (gameControl->getGeneralState())
{
case GENERAL_STATE::menu :
{
                             menu1.draw();
}break;
}
绘制菜单屏幕,但不知怎的它崩溃了,把我带到这条线

GENERAL_STATE getGeneralState() { return generalState; }

有什么想法吗?

如果您还没有这样做,您必须初始化
gameControl
指针

例如:

GameControl*    gameControl = new GameControl();
但别忘了在最后删除它

或者更好的是,根本不要使用指针:

GameControl   gameControl;
switch (gameControl.getGeneralState())

但是在
GameControl
内部,您应该初始化
generalState

您可以发布错误消息吗?您是如何实例化
GameControl
的实例的?@pSoLT未处理异常在掷球游戏中0x00382D36处。exe:0xc000005:访问违规读取位置0xCDCDCDCD。@user7194060所以RustyX给了您回答。