コード例 #1
0
        public void Load(string name, bool singlePlayer, int width, int height,
                         int[,] blocks, EnemyType[] spawnEnemies)
        {
            Clear();

            Name   = name;
            Width  = width;
            Height = height;

            if (FieldEditorController.Instance != null)
            {
                FieldEditorController.Instance.OrderSpawnEnemies = spawnEnemies;
            }
            SpawnPointEnemiesManager.SetOrderSpawnEnemies(spawnEnemies);

            _blocks = new BlockController[Width, Height];
            for (int x = 0; x < Width; x++)
            {
                for (int y = 0; y < Height; y++)
                {
                    SetCell(x, y, (Block)blocks[x, y]);
                }
            }

            if (singlePlayer)
            {
                var player2 = FindBlock(Block.Player2);
                if (player2 != null)
                {
                    Destroy(player2.gameObject);
                }
            }
        }
コード例 #2
0
ファイル: GameManager.cs プロジェクト: VegK/BattleCity
        private void Reset()
        {
            _gameOver = false;
            _pause    = false;

            SpawnPointEnemiesManager.Reset();
            GameGUIController.Instance.HidePause();
            GameGUIController.Instance.HideGameOver();
            GameGUIController.Instance.HideGameOverPlayer1();
            GameGUIController.Instance.HideGameOverPlayer2();
            FieldController.Instance.Clear();
        }
コード例 #3
0
ファイル: LevelManager.cs プロジェクト: VegK/BattleCity
        public static void NextLevel()
        {
            var levelsCount = _instance._levels.Count;

            while (levelsCount > 0)
            {
                levelsCount--;
                _instance._index++;
                GameGUIController.Instance.LevelNumber = LevelNumber;
                var enemiesCount = SpawnPointEnemiesManager.GetEnemiesCount();
                GameGUIController.Instance.EnemiesCount = enemiesCount;
                if (Load(CurrentLevel))
                {
                    break;
                }
            }
        }
コード例 #4
0
ファイル: GameManager.cs プロジェクト: VegK/BattleCity
        private IEnumerator NextLevelLoadScreen(EventHandler overlapScreen)
        {
            var defaultScale = Time.timeScale;

            Time.timeScale = 0;

            var loop  = true;
            var level = LevelManager.LevelNumber + 1;

            LoadLevelSceneController.Show(level, (s, e) => { loop = false; }, null);
            while (loop)
            {
                yield return(null);
            }

            if (overlapScreen != null)
            {
                overlapScreen(this, EventArgs.Empty);
            }

            yield return(new WaitForSecondsRealtime(1f));

            LevelManager.NextLevel();
            AudioManager.PlayMainSound(_instance.AudioStartLevel);
            yield return(new WaitForSecondsRealtime(1f));

            loop = true;
            LoadLevelSceneController.Hide((s, e) => { loop = false; });
            while (loop)
            {
                yield return(null);
            }

            Time.timeScale = defaultScale;
            SpawnPointEnemiesManager.StartSpawn();
            Player1.ResetEnemy();
            Player2.ResetEnemy();
        }
コード例 #5
0
		private void Awake()
		{
			_instance = this;
			_orderEnemiesSpawn = new EnemyType[0];
		}
コード例 #6
0
 private void Awake()
 {
     _instance          = this;
     _orderEnemiesSpawn = new EnemyType[0];
 }