Update() публичный Метод

public Update ( ) : void
Результат void
Пример #1
0
        public void testTwoTowerswithTwoEnemies()
        {
            Tower t1 = new Tower("tower", 10, 1, 10, 20, new Rectangle(10, 10, 1, 1));
            Tower t2 = new Tower("tower", 10, 10, 10, 20, new Rectangle(20, 20, 1, 1));
            Enemy e1 = new Enemy(20, 1.0, "basic", 1, new Rectangle(11, 11, 1, 1)); // In range of tower and tower 2, closer to tower 1
            Enemy e2 = new Enemy(20, 1.0, "basic", 1, new Rectangle(19, 19, 1, 1)); // In range of tower and tower 2, closer to tower 2

            Map m = new Map("normal", 100, 1);

            m.PlaceTower(t1);
            m.PlaceTower(t2);
            m.SpawnEnemy(e1);
            m.SpawnEnemy(e2);
            m.Update();//adds all the approiate enemies to the towers lists
            //Assert.IsNull(t1.getCurrentTarget());
            t1.updateCounter = 59;
            t2.updateCounter = 59;
            t1.Update();
            Assert.AreEqual(2, t1.Enemies.Count);
            Assert.AreEqual(2, t2.Enemies.Count);
            Assert.AreEqual(1, t1.AttackDamage);
            // e1.Health -= 19;
            t2.Update();

            //Assert.AreEqual(19, e1.Health);
            Assert.AreEqual(e2.Health, 10);
        }
Пример #2
0
        public void testTowerUpdatesEnemiesList()
        {
            Tower t1 = new Tower("tower", 10, 1, 10, 10, new Rectangle(0, 0, 10, 10));
            Enemy e1 = new Enemy(20, 1.0, "basic", 1, new Rectangle(150, 150, 155, 155)); //Out of t1's range
            Map   m  = new Map("normal", 100, 1);

            m.PlaceTower(t1);
            m.SpawnEnemy(e1);
            m.Update();//adds all the approiate enemies to the towers lists
            t1.Update();
            //Assert.AreEqual(e1, t1.getEnemyList.get(0));
            Assert.AreEqual(0, t1.Enemies.Count);
        }
Пример #3
0
        public void Update(DemoTime time, Vector2 position)
        {
            base.Update(time);

            _towers.ForEach(delegate(CommonTower Tower)
            {
                Tower.Update(time);
            });

            _towers.ForEach(delegate(CommonTower Tower)
            {
                Tower.Fire(time, position);
            });
        }
Пример #4
0
        /// <summary>
        /// This is where all the Tower defense update calls should be placed so that it is easy to transfer our
        /// project over to the main one without having to add a lot of code to the main program.
        /// </summary>
        /// <param name="gametime">current game time</param>
        /// <param name="keyboard">keyboard state</param>
        /// <param name="mouse">mouse state</param>
        public static void Update(GameTime gametime, KeyboardState keyboard, MouseState mouse)
        {
            Random random = new Random();

            if (LastWaveUpdate == TimeSpan.Zero)
            {
                LastWaveUpdate = gametime.TotalGameTime;
            }

            if (currentWave != null && !currentWave.complete)
            {
                currentWave.update(gametime);
                LastWaveUpdate = gametime.TotalGameTime;
            }
            else if ((gametime.TotalGameTime - LastWaveUpdate) > SpawnNextWaveIn)
            {
                if (TDPlayerStats.currentWave == TDPlayerStats.maxWaves)
                {
                    TPEngine.Get().State.PopState();
                    TPEngine.Get().State.PushState(new TDScoreScreenState());
                }

                TDPlayerStats.Money += 5;
                TDPlayerStats.currentWave++;
                currentWave = new EnemyWave(random.Next(8, 12), 1);

                //LastWaveUpdate = gametime.TotalGameTime;
            }

            if (TDPlayerStats.Grade <= 0)
            {
                TPEngine.Get().State.PopState();
                TPEngine.Get().State.PushState(new TDScoreScreenState());
            }

            if (Keyboard.GetState().IsKeyDown(Keys.X) && !clicked)
            {
                TDPlayerStats.Grade = 0;
                TPEngine.Get().State.PopState();
                TPEngine.Get().State.PushState(new TDScoreScreenState());
                clicked = true;
            }
            TowerBuilder.UpdateKeyboardInput(keyboard, mouse);
            Enemy.Update(gametime);
            Tower.Update(gametime);
            Projectile.UpdateProjectiles(gametime);
            Window.Update(gametime, keyboard, mouse);
        }
Пример #5
0
        //Testing to see if enemies that move into range get damaged
        public void mapUpdatesDamageEnemiesWithTowers()
        {
            Tower t       = new Tower("basic", 10, 10, 10, 500, new Rectangle(70, 70, 1, 1));
            Enemy special = new Enemy(20, 1.0f, "basic", 20, new Rectangle(1, 1, 1, 1));

            map.SpawnEnemy(special);
            map.SellTower(t);
            map.PlaceTower(t);
            for (int i = 0; i <= 60; i++)
            {
                map.Update();
                t.Update();
            }
            Assert.AreEqual(special, t.getCurrentTarget());//Special should be the closest to the tower
            Assert.AreEqual(10, t.getCurrentTarget().Health);
        }
        public void TowerDoesNotAttackEnemyOutsideItsRange()
        {
            //Move the enemy outside of the tower's range
            enemy.moveTo(1000, 1000);

            //Update method for map causes the towers to add nearby enemies
            map.Update();

            Assert.AreEqual(0, tower.Enemies.Count);
            //Update method causes the tower to attack nearest enemy in its range
            for (int i = 0; i < tower.UpdateMax; i++)
            {
                tower.Update();
            }

            //Verify that the enemy was not damaged
            Assert.AreEqual(10, enemy.Health);
        }
Пример #7
0
        public void testTowerChangesTarget()
        {
            Tower t1 = new Tower("tower", 10, 1, 10, 100, new Rectangle(0, 0, 1, 11));
            Enemy e1 = new Enemy(20, 1.0, "basic", 1, new Rectangle(30, 30, 1, 1));
            Enemy e2 = new Enemy(20, 1.0, "basic", 1, new Rectangle(110, 110, 1, 1));

            Map m = new Map("normal", 100, 1);

            m.PlaceTower(t1);
            m.SpawnEnemy(e1);
            m.SpawnEnemy(e2);
            m.Update();            //adds all the approiate enemies to the towers lists
            t1.Update();
            Assert.AreEqual(e1, t1.getCurrentTarget());

            e2.moveTo(25, 25);
            m.Update();
            Assert.AreEqual(e2, t1.getCurrentTarget());
        }
        public void MultipleTowersCanAttackSingleEnemy()
        {
            //Testing that two towers can attack the same enemy
            Tower tower2 = new Tower("", 10, 20, 30, 40, new Rectangle(4, 4, 1, 1));

            map.PlaceTower(tower2);
            map.Update();

            float temp = enemy.Health;

            for (int i = 0; i < tower.UpdateMax; i++)
            {
                tower.Update();
            }

            Assert.AreNotEqual(enemy.Health, temp);
            temp = enemy.Health;
            for (int i = 0; i < tower2.UpdateMax; i++)
            {
                tower2.Update();
            }

            Assert.AreNotEqual(enemy.Health, temp);
        }