コード例 #1
0
void AppStage_ComputeTrackerPoses::setState(eMenuState newState)
{
    if (newState != m_menuState)
    {
        onExitState(m_menuState);
        onEnterState(newState);

        m_menuState = newState;
    }
}
コード例 #2
0
//-- private methods -----
void AppStage_GyroscopeCalibration::setState(eCalibrationMenuState newState)
{
	if (newState != m_menuState)
	{
		onExitState(m_menuState);
		onEnterState(newState);

		m_menuState = newState;
	}
}
コード例 #3
0
ファイル: StateMachine.cpp プロジェクト: AquariaOSE/Aquaria
void StateMachine::perform(int state, float time)
{
	//debugLog("in perform");
	stateExtraDT = 0;
	prevState = currentState;
	nextState = state;
	//debugLog("onExitState");
	
	// do this to prevent scripts from repeating endlessly when running main loops
	enqueuedState = STATE_NONE;

 	onExitState(currentState);
	stateCounter = 0;
	stateTime = time;
	currentState = state;
	nextState = STATE_NONE;
	//debugLog("onActionInit");
	onEnterState(currentState);
	
	//debugLog("done");
}	 
コード例 #4
0
ファイル: StateMachine.cpp プロジェクト: AquariaOSE/Aquaria
void StateMachine::onUpdate (float dt)
{
	if (currentState != STATE_NONE)
	{
		if (stateTime != -1)
		{
			stateCounter += dt;
			if (stateCounter >= stateTime)
			{
				stateExtraDT = stateCounter - stateTime;
				stateCounter = stateTime;
				onExitState (currentState);
				currentState = -1;
				stateExtraDT = 0;
			}
		}
	}
	if (enqueuedState != STATE_NONE)
	{
		perform(enqueuedState, enqueuedTime);
		enqueuedState = STATE_NONE;
		enqueuedTime = -1;
	}
}
コード例 #5
0
ファイル: StateMachine.cpp プロジェクト: AquariaOSE/Aquaria
void StateMachine::stopState(int state)
{
	onExitState(state);
	currentState = STATE_NONE;
}