예제 #1
0
        public EnemyInitialization(IEnemyFactory enemyFactory)
        {
            _enemyFactory = enemyFactory;
            _enemy        = new CompositeMove();
            var enemy = _enemyFactory.CreateEnemy(EnemyType.Small);

            _enemy.AddUnit(enemy);
            _enemies = new List <IEnemy>
            {
                enemy
            };
        }
예제 #2
0
        private void SpawnEnemy()
        {
            _newEnemyPosition.x = Random.Range(-10.0f, 10.0f);
            _newEnemyPosition.y = Random.Range(-10.0f, 10.0f);

            var enemie = _enemiesPool[_enemyIndex];

            enemie.transform.position = _newEnemyPosition;
            enemie.gameObject.SetActive(true);

            _enemiesMove.AddUnit(enemie);

            ++_enemyIndex;
            _enemyIndex %= _enemiesPool.Length;
        }
예제 #3
0
        public Controllers(Data data)
        {
            var pcInputHorizontal = new PCInputHorizontal();
            var pcInputVertical   = new PCInputVertical();
            var pcInputFire       = new PCFireInput();

            IPlayerFactory playerFactory = new PlayerFactory(data.Player);
            IPlayer        player        = playerFactory.CreatePlayer();

            IBulletFactory bulletFactory = new BulletFactory(data.Bullet);

            IEnemyFactory enemyFactory = new EnemyFactory();
            CompositeMove enemy        = new CompositeMove();

            int enemiesNum = 5;

            for (int i = 0; i < enemiesNum; ++i)
            {
                enemy.AddUnit(enemyFactory.CreateEnemy(data.Enemy, EnemyType.Small));
            }


            var enemiesList = enemy.GetEnemiesList();
            List <IDestructable> destructables = new List <IDestructable>();

            foreach (var _enemy in enemiesList)
            {
                destructables.Add((IDestructable)_enemy);
            }
            destructables.Add((IDestructable)player);


            IUIFactory uIFactory = new UIFactory();
            IUIInfo    uI        = uIFactory.CreateUI(data.UISettings);

            var executes = new List <IExecute>();

            executes.Add(new InputController(pcInputHorizontal, pcInputVertical, pcInputFire));
            executes.Add(new MoveController(pcInputHorizontal, pcInputVertical, player, data.Player));
            executes.Add(new EnemyMoveController(enemy, player.GetPosition()));
            executes.Add(new FireController(player, pcInputFire, data.Bullet, bulletFactory));
            executes.Add(new CollisionController(destructables));
            executes.Add(new UIController(uI, player, enemiesList));

            _executeControllers = executes.ToArray();
        }
예제 #4
0
        public Controllers(Data data)
        {
            var pcInputHorizontal = new PCInputHorizontal();
            var pcInputVertical   = new PCInputVertical();

            IPlayerFactory playerFactory = new PlayerFactory(data.Player);
            var            player        = playerFactory.CreatePlayer();

            IEnemyFactory enemyFactory = new EnemyFactory();
            CompositeMove enemy        = new CompositeMove();

            enemy.AddUnit(enemyFactory.CreateEnemy(data.Enemy, EnemyType.Small));

            var executes = new List <IExecute>();

            executes.Add(new InputController(pcInputHorizontal, pcInputVertical));
            executes.Add(new MoveController(pcInputHorizontal, pcInputVertical, player, data.Player));
            executes.Add(new EnemyMoveController(enemy, player));
            _executeControllers = executes.ToArray();
        }