コード例 #1
0
        public override void SelectMenuItem()
        {
            string selectedItem;

            GetSelectedItem(out selectedItem);

            var ingameManager = Ingame.GetInstance();

            switch (selectedItem)
            {
            case NewGame:
                GameStateManager.State = States.Ingame;
                ingameManager.Activate();
                LevelManager.LoadLevel <Map <TileCode>, TileCode>("Level1");
                GameVariableProvider.SaveManager.Save();
                break;

            case Resume:
                GameStateManager.State = States.Ingame;
                ingameManager.Activate();
                GameVariableProvider.SaveManager.Load(VariableProvider.SaveSlot);
                break;

            case Quit:
                VariableProvider.Exit();
                break;
            }
        }
コード例 #2
0
        public GameStateManager()
        {
            var ingameManager = Ingame.GetInstance();
            var dialogManager = DialogManager.GetInstance();
            var bulletManager = BulletManager.GetInstance();

            DialogHelper.Initialize(dialogManager);

            AddGameState(bulletManager);
            AddGameState(ingameManager);
            AddGameState(dialogManager);
            AddGameState(new Menu());
            AddGameState(new GeneralHelper());
            AddGameState(new Titlescreen());

            FastDead                = true;
            State                   = States.Titlescreen;
            Menu.MenuState          = MenuStates.Main;
            EngineState.GameState   = EngineStates.Running;
            EngineState.DialogState = DialogueStates.Inactive;
        }
コード例 #3
0
        private static int OnCodeInPlayerCenterCheck(TileCode code, List <TileCode> codes,
                                                     Vector2 collisionCenter,
                                                     int i, GameObject player)
        {
            switch (code.Code)
            {
            case TileCodes.Transition:
                if (EngineState.GameState == EngineStates.Editor)
                {
                    break;
                }
                Ingame.GetInstance().Activate();
                LevelManager.LoadLevel <Map <TileCode>, TileCode>(code.Message);
                GameVariableProvider.SaveManager.CurrentSaveState.Keys.Clear();
                GameVariableProvider.SaveManager.CurrentSaveState.BossDead = false;
                break;

            case TileCodes.Dialog:
                if (InputMapper.StrictAction)
                {
                    DialogHelper.PlayDialog(code.Message);
                }
                break;

            case TileCodes.Save:
                GameVariableProvider.SaveManager.Save();
                codes.Remove(new TileCode(TileCodes.Save));
                --i;
                break;

            case TileCodes.PushLeft:
                player.Send("PHYSICS_PUSHLEFT", true);
                break;

            case TileCodes.PushRight:
                player.Send("PHYSICS_PUSHRIGHT", true);
                break;

            case TileCodes.PushUp:
                player.Send("PHYSICS_PUSHUP", true);
                break;

            case TileCodes.PushDown:
                player.Send("PHYSICS_PUSHDOWN", true);
                break;

            case TileCodes.Deadly:
                player.Send <string>("KILL", null);
                break;

            case TileCodes.Trigger:
                if (code.Message == "BOSS")
                {
                    foreach (var boss in GameVariableProvider.Bosses)
                    {
                        boss.Send <string>("SHOOT", null);
                    }
                }
                break;

            case TileCodes.CameraFocusTrigger:
                var parts     = code.Message.Split('_');
                var pointName = parts[0];
                int frameCount;
                int.TryParse(parts[1], out frameCount);
                EntityManager.AddEntity(new GameObject(CameraMoveComponent.GetInstance(pointName, frameCount)));
                break;
            }

            return(i);
        }