コード例 #1
0
        public GameInitialization(Controllers controllers, Data data)
        {
            Camera camera = Camera.main;
            var    inputInitialization       = new InputInitialization();
            var    playerFactory             = new PlayerFactory(data.Player);
            var    playerInitialization      = new PlayerInitialization(playerFactory, data.Player);
            var    boundaries                = new Boundaries(camera);
            var    backgroundImage           = new BackgroundMainImage(data);
            var    dynamicStart              = new BackgroundDynamicStars(data.LevelBackground);
            var    weaponsListInitialization = new WeaponsListInit(data);
            var    leftSpanPointInit         = new SpawnPointsInit(data.SpawnPoints.LeftSpawnPoint);
            var    centerSpanPointInit       = new SpawnPointsInit(data.SpawnPoints.CenterpawnPoint);
            var    rightSpanPointInit        = new SpawnPointsInit(data.SpawnPoints.RightSpawnPoint);
            var    viewServises              = new ViewServices();
            var    leftEnemyPool             = new EnemyPool(leftSpanPointInit.GetSpwanPoint(), data.EnemyPoolsData);
            var    centerEnemyPool           = new EnemyPool(centerSpanPointInit.GetSpwanPoint(), data.EnemyPoolsData);
            var    rightEnemyPool            = new EnemyPool(rightSpanPointInit.GetSpwanPoint(), data.EnemyPoolsData);

            ServiceLocator.SetService <IService>(leftEnemyPool);
            EnemyAddControllers(controllers, ServiceLocator.Resolve <IService>().GetPoolDictionary());
            EnemyAddControllers(controllers, rightEnemyPool.GetPoolDictionary());
            EnemyAddControllers(controllers, centerEnemyPool.GetPoolDictionary());
            var activator = new EnemyActivator(leftEnemyPool, centerEnemyPool, rightEnemyPool, data);

            controllers.Add(new BackgroundStaticStars(data.LevelBackground));
            controllers.Add(inputInitialization);
            controllers.Add(playerInitialization);
            controllers.Add(backgroundImage);
            controllers.Add(dynamicStart);
            controllers.Add(new BackgroundSpriteMover(backgroundImage.GetBackgroundImage(), dynamicStart.GetBackgroundStars(), data.LevelBackground.SpeedBackground, data.LevelBackground.SpeedSmallStars));
            controllers.Add(new InputController(inputInitialization.GetInput()));
            controllers.Add(new MoveController(inputInitialization.GetInput(), playerInitialization.GetPlayer(), data.Player, boundaries.ScreenBounds));
            controllers.Add(new ShootingController(playerInitialization.GetPlayer(), data, weaponsListInitialization, viewServises));
            controllers.Add(activator);
        }
コード例 #2
0
        public EnemyActivator(EnemyPool leftPool, EnemyPool centerPool, EnemyPool rigthPool, Data data)
        {
            _leftPool   = leftPool;
            _rigthPool  = rigthPool;
            _centerPool = centerPool;

            _listOfEnemies = data.LevelsDatas[0].EnemyInfoList;
            _timerBetweenDifferentTypesOfShips = data.LevelsDatas[0].TimerForDifferentType;
            _timerBetweenSameTypeOfShips       = data.LevelsDatas[0].TimerForSameType;
            _countOfSHips = _listOfEnemies[0].count;

            _pools = new List <EnemyPool>();
            _pools.Add(_leftPool);
            _pools.Add(_centerPool);
            _pools.Add(_rigthPool);
        }
コード例 #3
0
 private void SetActiveShips(float deltatime, List <LevelsData.EnemyInfo> listOfEnemies, EnemyPool pool)
 {
     if (_timerBetweenSameTypeOfShips <= timeCount && nextInList < listOfEnemies.Count)
     {
         var enemy = pool.SpawnFromPool(listOfEnemies[nextInList].nameOfEnemy.name);
         enemy.gameObject.SetActive(true);
         _countOfSHips -= 1;
         timeCount      = 0;
         if (_countOfSHips == 0)
         {
             nextInList += 1;
             if (nextInList < listOfEnemies.Count)
             {
                 _countOfSHips = listOfEnemies[nextInList].count;
             }
         }
     }
     timeCount += deltatime;
 }