ゲームの一時停止を許可しようとしています。現在、私はうまく機能する変更状態を持っています。私が持っている一時停止のために:
void PushState(int newState)
{
pauseID = stateID; ///save state number
Gstates.push_back(currentState); ///Set Current state to vector
nextState = newState; ///acquire new state
switch( nextState )
{
case STATE_INTRO:
currentState = new CIntroState(); ///create new state
break;
}
//Change the current state ID
stateID = nextState;
//NULL the next state ID
nextState = STATE_NULL;
}
上記の部分はうまくいくようです。
これは私の履歴書セクションです
void Resuming()
{
nextState = pauseID;
if( nextState != STATE_EXIT )
{
delete currentState; ///deletes current state
}
switch( nextState )
{
case STATE_INTRO:
currentState = Gstates.back(); ///sets current state to the saved state
Gstates.pop_back(); ///delets saved state
break;
}
//Change the current state ID
stateID = nextState;
//NULL the next state ID
nextState = STATE_NULL;
}
奇妙なマルチスレッドエラーが発生します。約 50% の場合は意図したとおりに動作しますが、残りの時間はクラッシュします。
エラーは基本的に、「これはマルチスレッド クライアントであり、XInitThreads が呼び出されていない可能性が高いです。
クライアントはマルチスレッドではありません;)..とにかく、何が起こっているのか誰か知っていますか?