Я настраиваю государственную систему для своей игры.
class State
{
protected:
enum State_
{
STATE_INTRO,
STATE_GAME,
STATE_PAUSE,
STATE_CUTSCENE,
};
public:
State();
virtual void run(State_) = 0;
virtual ~State(); // virtual destructor cus we will be inheriting this class
};
Затем я унаследовал классы, которые представляют каждое состояние
class IntroState : public State
{
public:
void run(State_ STATE);
};
Я хочу, чтобы функция run
имела разные функциональные возможности в зависимости от того, в каком состоянии находится игра. плохая практика для достижения этого, как это:
void IntroState::run(State_ STATE)
{
if (STATE == STATE_INTRO)
{
// load the intro
}
}
Я не уверен, как еще сделать это, спасибо (и имейте в виду, я ПРОСТО узнаю о состояниях, так что я мог бы быть здесь совсем)