示例#1
0
        public bool CollidesPlayers(BaseAlien alienOne)
        {
            for (int i = 0; i < players.Length; i++)
            {
                if (Collider.Collide(alienOne._collisionRectangle, players[i].collisionRectangle)) return true;
            }

            return false;
        }
示例#2
0
 public bool CollideCurrentEntities(BaseAlien alienOne)
 {
     return sections[currentSection].CollideAliens(alienOne);
 }
示例#3
0
 public bool CollideAliens(BaseAlien alienOne)
 {
     for (int i = 0; i < _population.Count; i++)
     {
         BaseAlien ba = _population[i];
         if (ba == alienOne) continue;
         if (Collider.Collide(alienOne._collisionRectangle, ba._collisionRectangle))
         {
             return true;
         }
     }
     return false;
 }
示例#4
0
 public void AddAlienToPopulation(BaseAlien ba)
 {
     _population.Add(ba);
     _currentTitle = "Aliens Left: " + _population.Count;
 }
示例#5
0
        public IProjectile CheckHit(BaseAlien alien)
        {
            int i = pistolBulletPool.GetFirst();
            while (i != -1)
            {
                PistolBullet b = pistolBulletPool.GetByIndex(i);
                if (Collider.Collide(alien.GetBoundRect(), b.GetCenter())) return b;
                i = pistolBulletPool.NextIndex(b);
            }

            i = shotgunBulletPool.GetFirst();
            while (i != -1)
            {
                ShotgunBullet b = shotgunBulletPool.GetByIndex(i);
                if (Collider.Collide(alien.GetBoundRect(), b.GetCenter())) return b;
                i = shotgunBulletPool.NextIndex(b);
            }

            i = assaultBulletPool.GetFirst();
            while (i != -1)
            {
                AssaultBullet b = assaultBulletPool.GetByIndex(i);
                if (Collider.Collide(alien.GetBoundRect(), b.GetCenter())) return b;
                i = assaultBulletPool.NextIndex(b);
            }

            i = sniperBulletPool.GetFirst();
            while (i != -1)
            {
                SniperBullet b = sniperBulletPool.GetByIndex(i);
                if (Collider.Collide(alien.GetBoundRect(), b.GetCenter())) return b;
                i = sniperBulletPool.NextIndex(b);
            }
            return null;
        }