public virtual void GetClosestEnemy(List<Enemy> enemies)
        {
            target = null;
            float smallestRange = radius;

            foreach (Enemy enemy in enemies)
            {
                if (Vector2.Distance(center, enemy.Center) < smallestRange)
                {
                    smallestRange = Vector2.Distance(center, enemy.Center);
                    target = enemy;
                }
            }
        }
Example #2
0
 public virtual void GetClosestEnemy(List<Enemy> enemies)
 {
     target = null;
     float smallestRange = radius;
     //pakt de dichtsbijzijnde enemy en neemt het als target
     foreach (Enemy enemy in enemies)
     {
         if (Vector2.Distance(animation.Position, enemy.animation.Position) < 15)
         {
             smallestRange = Vector2.Distance(animation.Position, enemy.animation.Position);
             target = enemy;
         }
     }
 }
        private void AddEnemy()
        {
            Enemy enemy = new Enemy(level,enemyTexture,level.Waypoints.Peek(), 50, 1,1);
            enemy.SetWayPoints(level.Waypoints);
            Enemy waterenemy = new Enemy(level,enemyTexture, level.WaterWaypoints.Peek(), 50, 1,3);
            waterenemy.SetWaterWayPoints(level.WaterWaypoints);
            enemies.Add(waterenemy);
            enemies.Add(enemy);
            spawnTimer = 0;

            enemiesSpawned++;
        }
Example #4
0
 void Start()
 {
     en=enemy.GetComponent<Enemy>();
 }
Example #5
0
        public override void Update(GameTime gameTime)
        {
            base.Update(gameTime);

            bulletTimer += (float)gameTime.ElapsedGameTime.TotalSeconds;
            if (target != null)
            {
                Facetarget();
                //als target uit range is of als target dood is

                if (!IsInRange(target.animation.Position)||target.IsDead)
                {
                    target = null;
                    bulletTimer = 0;
                }
            }
        }
        public override void Update(GameTime gameTime)
        {
            base.Update(gameTime);

            bulletTimer += (float)gameTime.ElapsedGameTime.TotalSeconds;

            if (target != null)
            {
                Facetarget();

                if (!IsInRange(target.Center)||target.IsDead)
                {
                    target = null;
                    bulletTimer = 0;
                }
            }
        }
        /// <summary>
        /// Called when [enemy reached target].
        /// </summary>
        /// <param name="enemy">The enemy.</param>
        private void OnEnemyReachedTarget( Enemy enemy )
        {
            DisposeEnemy( enemy );

            if( EventReachedTarget != null ) {
                EventReachedTarget();
            }
        }
        //===================================================
        // EVENTS METHODS
        //===================================================
        /// <summary>
        /// Called when [enemy died].
        /// </summary>
        /// <param name="enemy">The enemy.</param>
        private void OnEnemyDied( Enemy enemy )
        {
            DisposeEnemy( enemy );

            if( EventDied != null ) {
                EventDied( enemyMoney );
            }
        }
        /// <summary>
        /// Disposes the enemy.
        /// </summary>
        /// <param name="enemy">The enemy.</param>
        private void DisposeEnemy( Enemy enemy )
        {
            enemy.EventDied -= OnEnemyDied;
            enemy.EventReachedTarget -= OnEnemyReachedTarget;

            int index = EnemyList.IndexOf( enemy.gameObject );
            if( index >= 0 ) {
                EnemyList.RemoveAt( index );
            }

            enemy.gameObject.transform.position = transform.position;
            objectPool.ReleaseObject( enemy.gameObject );
        }