示例#1
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);
        }