Beispiel #1
0
    private bool DisposeLogicResult(SceneLogicResult ret)
    {
        switch (ret)
        {
        case SceneLogicResult.SceneLogicResult_Destroy:
        {
            return(false);
        }
        break;

        case SceneLogicResult.SceneLogicResult_Continue:
        {
            return(true);
        }
        break;

        case SceneLogicResult.SceneLogicResult_NextState:
        {
            int next = (int)mLogicState + 1;

            if (!System.Enum.IsDefined(typeof(SceneLogicState), next))
            {
                return(false);
            }

            ChangeState((SceneLogicState)next);
        }
        break;

        default:
            break;
        }
        return(true);
    }
Beispiel #2
0
    override public bool LogicUpdate(uint elapsed)
    {
        if (!base.LogicUpdate(elapsed))
        {
            return(false);
        }

        mLogicRunTime += elapsed;

        SceneLogicResult ret = SceneLogicResult.SceneLogicResult_Continue;

        switch (mLogicState)
        {
        case SceneLogicState.SceneLogicState_Invalid:
        {
            ret = InitLogicState();
        }
        break;

        case SceneLogicState.SceneLogicState_Ready:
        {
            ret = ReadyStateUpdate(elapsed);
        }
        break;

        case SceneLogicState.SceneLogicState_Working:
        {
            ret = WorkingStateUpdate(elapsed);
        }
        break;

        case SceneLogicState.SceneLogicState_Closing:
        {
            ret = ClosingStateUpdate(elapsed);
        }
        break;

        case SceneLogicState.SceneLogicState_Destroy:
        {
            ret = DestroyStateUpdate(elapsed);
        }
        break;

        default:
            break;
        }

        return(DisposeLogicResult(ret));
    }