示例#1
0
        private void CreateButtons(TowerSelectorController towerSelector)
        {
            // Tower1
            Buttons.Add(new TowerButton(
                            ButtonsOffset + new Vector2(10f, 30f),
                            new Vector2(100f, 80f),
                            TowerFactory.GetTower("Tower1"),
                            new Rectangle(0, 0, 100, 60),
                            200)
            {
                TextPosition   = new Vector2(50f, 70f),
                AttachedObject = "Tower1"
            });
            // Tower2
            Buttons.Add(new TowerButton(
                            ButtonsOffset + new Vector2(120f, 30f),
                            new Vector2(100f, 80f),
                            TowerFactory.GetTower("Tower2"),
                            new Rectangle(0, 0, 100, 60),
                            200)
            {
                TextPosition   = new Vector2(50f, 70f),
                AttachedObject = "Tower2"
            });

            foreach (Button button in Buttons)
            {
                button.OnClicked += towerSelector.OnTowerButtonClicked;
            }
        }
示例#2
0
        public AvailableTowersUiView(ButtonManager buttonManager, TowerSelectorController towerSelector, Rectangle backgroundRect)
        {
            this.buttonManager = buttonManager;
            BackgroundRect     = backgroundRect;
            ButtonsOffset      = backgroundRect.Location.ToVector2();

            Buttons = new List <Button>();
            CreateButtons(towerSelector);

            buttonManager.AddButtons(Buttons);

            ViewGroupId = new HashSet <int>();
            Enabled     = true;
        }
示例#3
0
        public TestScreen()
        {
            camera = new Camera(new Vector2(0, 0))
            {
                Scale = new Vector2(0.8f)
            };

            enemyManager          = new EnemyManager();
            towerManager          = new TowerManager(enemyManager);
            bulletManager         = new BulletManager(enemyManager);
            particleManager       = new ParticleManager();
            towerPlacer           = new TowerPlacer(towerManager);
            selectTowerController = new SelectTowerController(towerManager, towerPlacer, camera);
            spawnerController     = new EnemySpawnerController(enemyManager);
            TowerSelectorController towerSelector = new TowerSelectorController(camera, towerPlacer, bulletManager, enemyManager, particleManager);

            // Create Tower prefabs.
            TowerFactory.Add("Tower1", new TestTower(bulletManager, enemyManager, particleManager));
            TowerFactory.Add("Tower2", new MachineGunPlaneTower(bulletManager, enemyManager, particleManager));

            enemyManager.OnEnemyReachedLastPoint += OnEnemyReachedGoal;

            // Controllers.
            controllers.Add(selectTowerController);
            controllers.Add(new MapMoverController(camera));
            controllers.Add(spawnerController);
            controllers.Add(enemyManager);
            controllers.Add(towerManager);
            controllers.Add(bulletManager);
            controllers.Add(particleManager);
            controllers.Add(towerSelector);
            //controllers.Add(new TestTowerPlacerScript(towerPlacer, TowerFactory.GetTower("Tower2"))); // TEST!

            // Views.
            views.Add(new SelectedTowerView(selectTowerController));
            views.Add(new MapView());
            views.Add(enemyManager);
            views.Add(towerManager);
            views.Add(bulletManager);
            views.Add(particleManager);

            AvailableTowersUiView availableTowersUi = new AvailableTowersUiView(new ButtonManager(), towerSelector, new Rectangle(700, 0, 300, 550));

            MouseOverlapsUI.AvailableTowersUi = availableTowersUi;

            // UI.
            uiViews.Add(availableTowersUi);

            spawnerController.Enabled = false;
        }