IEnumerator GoToResultState() { StopInGameObjects(); _state = GameSceneState.Result; _curtain.gameObject.SetActive(true); var renderer = _curtain.GetComponent <SpriteRenderer>(); var curColor = renderer.color; curColor.a = 0f; renderer.color = curColor; while (true) { curColor.a += 0.01f; renderer.color = curColor; yield return(new WaitForSeconds(0.01f)); if (curColor.a > 0.20f) { break; } } StartResultObjects(); }
void Awake() { if (GameObject.FindGameObjectsWithTag("UICtrl").Length > 1) { Destroy(gameObject); } else { shopCanvas = transform.Find("ShopCanvas").gameObject; RankCanvas = transform.Find("RankCanvas").gameObject; uiStateMachine = new UIStateMachine(); GameStartState gameStartState = new GameStartState(transform); uiStateMachine.AddState(gameStartState); GameSceneState gameSceneState = new GameSceneState(transform); uiStateMachine.AddState(gameSceneState); GameLoadingState gameLoadingState = new GameLoadingState(transform); uiStateMachine.AddState(gameLoadingState); uiStateMachine.ChangeState(typeof(GameLoadingState)); DontDestroyOnLoad(gameObject); } }
public override void OnDestroyScene() { gameSceneState = null; subStageList = null; heliPlayer = null; cameraTrack = null; Destroy(field.gameObject); }
//게임씬에서 마커를 검사할 함수 private void WhatISMyMarker_Game() { //마커의 이름에 따라 스테이트를 바꾸고싶다. for (int i = 0; i < game_allState.Length; i++) { if (imageName == game_allState[i].ToString()) { state_Game = game_allState[i]; Switch_Game(); break; } } }
public void LoadMainMenu() { UnloadLevelsAndMainMenu(); mouseLocker.hideMouse = mouseLocker.lockMouse = false; if (mainMenuScene.ScenePath == "") { Debug.LogError("Main menu scene not set"); return; } Debug.Log("Loading main menu"); levelLoadingOperations.Add(SceneManager.LoadSceneAsync(mainMenuScene, LoadSceneMode.Additive)); state = GameSceneState.MainMenu; }
public void LoadLevel() { UnloadLevelsAndMainMenu(); mouseLocker.hideMouse = mouseLocker.lockMouse = true; if (selectedLevel.ScenePath == "") { Debug.LogError("No level selected for loading"); return; } Debug.Log("Loading level: " + selectedLevel); levelLoadingOperations.Add(SceneManager.LoadSceneAsync(selectedLevel, LoadSceneMode.Additive)); loadedLevelID = SceneUtility.GetBuildIndexByScenePath(selectedLevel); state = GameSceneState.InLevel; }
public void ApplyGameSceneState(GameSceneState state) { var data = state.HeliPlayerData; bool zoom = data == null ? false : data.Zoom; NormalViewObject.ForEach(o => o.SetActive(!zoom)); ZoomViewObject.ForEach(o => o.SetActive(zoom)); var leftTargetCountText = state.HeliPlayerData.Target == null ? "0" : state.LeftEnemyCount.ToString(); foreach (var leftTargetCount in LeftTargetCount) { leftTargetCount.text = leftTargetCountText; } }
void Start() { _state = GameSceneState.Home; VariableInitialize(); UIInitialize(); PlayerInitialize(); CameraInitialize(); BackgroundInitialize(); MissileShooterInitialize(); CloudMakerInitialize(); StopInGameObjects(); StopResultObjects(); StartHomeObjects(); }
IEnumerator GoToInGameState() { if (_state == GameSceneState.Home) { var titleColor = _title.GetComponent <Image>().color; var buttonColor = _playButton.GetComponent <Image>().color; while (true) { titleColor.a -= 0.1f; buttonColor.a -= 0.1f; _title.GetComponent <Image>().color = titleColor; _playButton.GetComponent <Image>().color = buttonColor; if (titleColor.a <= 0.0f) { break; } yield return(new WaitForSeconds(0.05f)); } var originTitleColor = _title.GetComponent <Image>().color; var originButtonColor = _playButton.GetComponent <Image>().color; originTitleColor.a = 1; originButtonColor.a = 1; _title.GetComponent <Image>().color = originTitleColor; _playButton.GetComponent <Image>().color = originButtonColor; } _player.MakeInitial(); StopResultObjects(); StopHomeObjects(); StartInGameObjects(); _state = GameSceneState.InGame; }
private void InitFiniteStateMachine() { // Init all states MainMenuState mainMenu = new MainMenuState(this); mainMenu.AddTransition(StateTransition.PressStart, StateID.LevelSelect); LevelSelectState levelSelect = new LevelSelectState(this); levelSelect.AddTransition(StateTransition.ViewCard, StateID.CardView); levelSelect.AddTransition(StateTransition.ChoseLevel, StateID.GameScene); levelSelect.AddTransition(StateTransition.ViewOption, StateID.OptionView); levelSelect.AddTransition(StateTransition.ViewPay, StateID.PayView); CardViewState cardView = new CardViewState(this); cardView.AddTransition(StateTransition.BackToLevelSelect, StateID.LevelSelect); GameSceneState gameScene = new GameSceneState(this); gameScene.AddTransition(StateTransition.BackToLevelSelect, StateID.LevelSelect); OptionViewState optionView = new OptionViewState(this); optionView.AddTransition(StateTransition.BackToLevelSelect, StateID.LevelSelect); PayViewState payView = new PayViewState(this); payView.AddTransition(StateTransition.BackToLevelSelect, StateID.LevelSelect); // Init finite state machine _fsm = new FiniteStateMachine(); _fsm.AddFiniteState(mainMenu); _fsm.AddFiniteState(levelSelect); _fsm.AddFiniteState(cardView); _fsm.AddFiniteState(gameScene); _fsm.AddFiniteState(optionView); _fsm.AddFiniteState(payView); }
public GameScene(SceneManager manager) : base(manager) { //Test: this.Background = SpriteBank.GetSprite(@"Images\Controls\Background_Forest"); this.moveTimer = new Counter.Timer(this.Game, 20); this.state = GameSceneState.MoveIn; this.moveTimer.OnMeet += new Counter.EventOnCounterMeet(this.MoveIn); this.moveTimer.Start(); this.playButton = new Controls.Button(this.Game, SpriteBank.GetSprite(@"Images\Controls\Ready"), SpriteBank.GetSprite(@"Images\Controls\ReadyOver"), Vector2.Zero); this.playButton.Position = new Vector2(-315f, 220f); this.playButton.Clicked += new EventHandler(this.PlayButtonOnClick); this.Grid = new Griding.Griding(this.Game, new Rectangle(0, 60, 760, 380), 5, 9); this.PlantManager = new Plants_Bullets.Plant.PlantManager(this.Game, this.Grid); this.GrowManager = new Hospital.Hospital_GrowManager(this.PlantManager); this.PlantManager.GetSunManager.OnSunChanged += new SunManager.OnSunChangedProc(this.GrowManager.OnSunChanged); this.PlantManager.GetSunManager.NumberOfSuns = 100; this.ZombiesManager = new Zombies.Managers.ZombiesManager(this.Grid); this.ZombiesManager.Generator = new Hospital.Hospital_ZombiesGenerator(this.ZombiesManager); }
public void OnChangeStage(int subStageId) { var subStage = subStageList.FirstOrDefault(s => s.SubStageId == subStageId); int enemyCount = 0; Transform firstTarget = null; if (subStage != null) { var firstEnemy = subStage.EnemyList.FirstOrDefault(); enemyCount = subStage.EnemyList.Count; if (firstEnemy != null) { firstTarget = firstEnemy.TargetJoint; } } gameSceneState = new GameSceneState() { TargetEnemyList = subStage.EnemyList.ToList(), HeliPlayerData = new HeliPlayerData() { Zoom = false, Target = firstTarget }, SubStageId = subStage.SubStageId, NextSubStageId = subStage.NextSubStageId, LeftEnemyCount = enemyCount, CurrentEnemyIndex = 0 }; subStage.SetColliderActive(true); gameSceneState.InvalidTarget(); heliPlayer.ApplyHeliPlayerData(gameSceneState.HeliPlayerData); view.ApplyGameSceneState(gameSceneState); }
public virtual void PlayButtonOnClick(object sender, EventArgs e) { if ((this.state == GameSceneState.Choosing) && (this.GrowManager.BuyList.IsMax || this.GrowManager.ChooseList.listControl.Count == 0)) { this.state = GameSceneState.MoveOut; this.moveTimer.OnMeet += new Counter.EventOnCounterMeet(this.MoveOut); this.moveTimer.Start(); } }
public virtual void MoveOut(Counter.ICounter timer) { this.Background.PositionX += 3.9f; this.GrowManager.MoveOut(); this.playButton.PositionX -= 5f; if (this.Background.PositionX >= -264) { this.moveTimer.Stop(); this.moveTimer.OnMeet -= new Counter.EventOnCounterMeet(this.MoveOut); this.GrowManager.Play(); this.ZombiesManager.Generator.Begin(); this.state = GameSceneState.Play; } }
public virtual void MoveIn(Counter.ICounter timer) { this.Background.PositionX -= 6.54f; this.GrowManager.MoveIn(); this.playButton.PositionX += 5f; if (this.Background.PositionX <= -654f) { this.moveTimer.Stop(); this.moveTimer.OnMeet -= new Counter.EventOnCounterMeet(this.MoveIn); this.state = GameSceneState.Choosing; } }
public override void OnInitializeScene(ISceneInitData _initData) { initData = (GameSceneInitData)_initData; GameInstance.Inst.PlayBGM(new BgmEnum[] { BgmEnum.Game, BgmEnum.GameAmbient }); field = GenericPrefab.InstantiatePathFormat <Field>(initData.FieldId.ToString()); cameraTrack = field.GetCameraTrack(); heliPlayer = GenericPrefab.Instantiate <HeliPlayer>(cameraTrack.GetCameraJoint()); subStageList = field.GetSubStageList(); //GameSceneState { int enemyCount = 0; var fistStage = subStageList.FirstOrDefault(); Transform firstTarget = null; if (fistStage != null) { var firstEnemy = fistStage.EnemyList.FirstOrDefault(); enemyCount = fistStage.EnemyList.Count; if (firstEnemy != null) { firstTarget = firstEnemy.TargetJoint; } } gameSceneState = new GameSceneState() { TargetEnemyList = fistStage.EnemyList.ToList(), HeliPlayerData = new HeliPlayerData() { Zoom = false, Target = firstTarget }, SubStageId = fistStage.SubStageId, NextSubStageId = fistStage.NextSubStageId, LeftEnemyCount = enemyCount, CurrentEnemyIndex = 0 }; fistStage.SetColliderActive(true); gameSceneState.InvalidTarget(); heliPlayer.ApplyHeliPlayerData(gameSceneState.HeliPlayerData); view.ApplyGameSceneState(gameSceneState); } //init enemy { var enemyInitData = new EnemyInitData() { OnKillEnemy = OnKillEnemy, OnRemoveEnemy = OnRemoveEnemy }; foreach (var subStage in subStageList) { foreach (var enemy in subStage.EnemyList) { enemy.Initialize(enemyInitData); } } } //Init CameraTrack cameraTrack.SetSubStage(1); startTime = Time.time; view.ApplyTime(Time.time - startTime); }