Esempio n. 1
0
    /// <summary>
    /// 加载Stage.lua
    /// </summary>
    private void OnStateLoadStageLuaUpdate()
    {
        if (Global.IsInReplayMode)
        {
            _isReplayFinish = false;
            _curStageName   = _stgData.stageName;
        }
        else
        {
            if (Global.DebugStageName != "")
            {
                _curStageName = Global.DebugStageName;
            }
            else
            {
                _curStageName = _nextStageName;
            }
        }
        _stgData.stageName = _curStageName;
#if DEBUG_GAMESTATE
        Logger.Log(string.Format("Create task of stage \"{0}\"", _stgData.stageName));
#endif
        _curState = eSTGMainState.StateWait;
        CommandManager.GetInstance().Register(CommandConsts.STGLoadStageLuaComplete, this);

        STGStageManager.GetInstance().LoadStage(_stgData.stageName);

        //_stgMain.EnterStage(_curStageName);
    }
Esempio n. 2
0
    /// <summary>
    /// 初始化STGMain
    /// </summary>
    private void OnStateInitSTGMainUpdate()
    {
        _stgMain = new STGMain();
        _stgMain.Init();
        // 加载各个stage.lua文件
        //List<string> stageLuaList = new List<string> { "stage1", "stage1sc" };
        List <string> stageLuaList = new List <string> {
            "TestEditorStage"
        };

#if DEBUG_GAMESTATE
        string fileListStr = "";
        for (int k = 0; k < stageLuaList.Count; k++)
        {
            fileListStr = k == 0 ? stageLuaList[k] + ".lua" : "\n" + stageLuaList[k] + ".lua";
        }
        Logger.Log(string.Format("Init STGMain,Start to load lua files\n{0}", fileListStr));
        TimeUtil.BeginSample("InitSTGMain");
#endif
        for (int i = 0; i < stageLuaList.Count; i++)
        {
            InterpreterManager.GetInstance().LoadLuaFile(stageLuaList[i]);
        }
#if DEBUG_GAMESTATE
        TimeUtil.EndSample("InitSTGMain");
        TimeUtil.LogSampleTick("InitSTGMain", "Load luafile(s) complete.Cost time {0}");
#endif
        _curState = eSTGMainState.StateInitSTGData;
    }
Esempio n. 3
0
    /// <summary>
    /// STG初始化完成回调
    /// <para>执行加载stage.lua</para>
    /// </summary>
    private void OnSTGInitComplete()
    {
#if DEBUG_GAMESTATE
        Logger.Log("Starting STG...");
#endif
        _curState = eSTGMainState.StateUpdateSTG;
    }
Esempio n. 4
0
    /// <summary>
    /// 加载关卡的默认背景场景
    /// </summary>
    private void OnStateLoadStageDefaultBgUpdate()
    {
#if DEBUG_GAMESTATE
        Logger.Log("Start loading bg of stage " + _curStageName);
#endif
        _curState = eSTGMainState.StateWait;
        CommandManager.GetInstance().Register(CommandConsts.STGLoadStageDefaultBgComplete, this);
        BackgroundManager.GetInstance().LoadStageDefaultBg(_curStageName);
    }
Esempio n. 5
0
    /// <summary>
    /// 执行clear
    /// </summary>
    private void OnStateClearUpdate()
    {
#if DEBUG_GAMESTATE
        Logger.Log("Clear STG");
#endif
        _stgMain.Clear();
        CommandManager.GetInstance().Remove(CommandConsts.PlayerMiss, this);
        CommandManager.GetInstance().Remove(CommandConsts.ContinueGameAfterGameOver, this);

        _curState = eSTGMainState.StateInitSTGData;
    }
Esempio n. 6
0
    /// <summary>
    /// 重新开始游戏
    /// </summary>
    private void OnRetryGame()
    {
        Logger.Log("Retry Game");
        _curState      = eSTGMainState.StateClear;
        _nextStageName = _curStageName;
        // 打开loadingView
        List <object> commandList = new List <object>();

        commandList.Add(CommandConsts.STGLoadStageLuaComplete);
        object[] commandArr = commandList.ToArray();
        UIManager.GetInstance().ShowView(WindowName.GameLoadingView, commandArr);
    }
Esempio n. 7
0
    private void OnStateInitSTGUpdate()
    {
        _curState = eSTGMainState.StateWait;
#if DEBUG_GAMESTATE
        Logger.Log("Init STG ");
#endif
        CommandManager.GetInstance().Register(CommandConsts.STGInitComplete, this);
        // 添加事件监听
        CommandManager.GetInstance().Register(CommandConsts.PlayerMiss, this);
        CommandManager.GetInstance().Register(CommandConsts.ContinueGameAfterGameOver, this);
        // 各种参数初始化
        _isGameOver    = false;
        Global.IsPause = false;
        _resumeSTGSE   = false;
        ReplayManager.GetInstance().SetReplayEnable(true);

        _stgMain.InitSTG(_stgData.characterIndex);
    }
Esempio n. 8
0
    /// <summary>
    /// 重新开始游戏的初始化
    /// </summary>
    private void OnStateInitSTGDataUpdate()
    {
        Global.IsInReplayMode = _stgData.isReplay;
        if (!Global.IsInReplayMode)
        {
            _stgData.seed = InitSeed();
        }
        MTRandom.Init(_stgData.seed);
#if DEBUG_GAMESTATE
        string modeStr = Global.IsInReplayMode ? "Replay" : "Play";
#if LOG_RANDOMSEED
        Logger.Log(string.Format("Init STGData,seed = {0}\nGameMode = {1}", _stgData.seed, modeStr));
#else
        Logger.Log(string.Format("Init STGData\nGameMode = {1}", _stgData.seed, modeStr));
#endif
#endif
        _curState = eSTGMainState.StateCreateStageTask;
    }
Esempio n. 9
0
    public void OnStateEnter(object data = null)
    {
        // 打开loadingView
        List <object> commandList = new List <object>();

        commandList.Add(CommandConsts.STGInitComplete);
        commandList.Add(CommandConsts.STGLoadStageLuaComplete);
        commandList.Add(CommandConsts.STGLoadStageDefaultBgComplete);
        object[] commandArr = commandList.ToArray();
        UIManager.GetInstance().ShowView(WindowName.GameLoadingView, commandArr);
        // STGCamera启用
        UIManager.GetInstance().GetSTGCamera().cullingMask = (1 << Consts.STGLayerIndex);
        // 添加监听
        CommandManager.GetInstance().Register(CommandConsts.RetryGame, this);
        CommandManager.GetInstance().Register(CommandConsts.RetryStage, this);
        CommandManager.GetInstance().Register(CommandConsts.ContinueGame, this);
        CommandManager.GetInstance().Register(CommandConsts.StageClear, this);
        CommandManager.GetInstance().Register(CommandConsts.SaveReplay, this);
        CommandManager.GetInstance().Register(CommandConsts.BackToTitle, this);
        _stgData = (STGData)data;
        // 设置需要载入的stage
        _nextStageName = _stgData.stageName;
        // 打开界面
        UIManager.GetInstance().ShowView(WindowName.GameInfoView, null);
        UIManager.GetInstance().ShowView(WindowName.STGBottomView, null);
        UIManager.GetInstance().ShowView(WindowName.GameMainView);

        UIManager.GetInstance().ShowView(WindowName.STGDialogView);
        // 实例化STGMain
        if (_stgMain == null)
        {
            _curState = eSTGMainState.StateInitSTGMain;
        }
        else
        {
            _curState = eSTGMainState.StateInitSTGData;
        }
    }
Esempio n. 10
0
 private void OnLoadStageDefaultBgComplete()
 {
     CommandManager.GetInstance().Remove(CommandConsts.STGLoadStageDefaultBgComplete, this);
     _curState = eSTGMainState.StateInitSTG;
 }