我如何简单地管理我的游戏状态? C ++

时间:2017-01-17 12:54:35

标签: c++ directx

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

enum class GENERAL_STATE : int {
menu = 1,
gamestart = 2,
};

以及具有获取和设置状态的方法的头类

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; }

任何想法?

1 个答案:

答案 0 :(得分:1)

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

例如:

GameControl*    gameControl = new GameControl();

但最后不要忘记delete

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

GameControl   gameControl;
switch (gameControl.getGeneralState())

但在GameControl内,你应该初始化generalState