/// <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); }
/// <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; }
/// <summary> /// STG初始化完成回调 /// <para>执行加载stage.lua</para> /// </summary> private void OnSTGInitComplete() { #if DEBUG_GAMESTATE Logger.Log("Starting STG..."); #endif _curState = eSTGMainState.StateUpdateSTG; }
/// <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); }
/// <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; }
/// <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); }
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); }
/// <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; }
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; } }
private void OnLoadStageDefaultBgComplete() { CommandManager.GetInstance().Remove(CommandConsts.STGLoadStageDefaultBgComplete, this); _curState = eSTGMainState.StateInitSTG; }