예제 #1
0
    // public bool IsplayerWin { get; set; }
    public void AddAlienBullet()
    {
        int randomN = SplashKit.Rnd(Invaders.Count);

        if (Invaders.Count != 0)
        {
            if (AlienBullets.Count == 0)
            {
                AlienBullets.Add(new AlienBullet(Invaders[randomN]));
                AlienShootSound.Play();
            }
        }
    }
예제 #2
0
    public void CheckPlayerABulletCollision()
    {
        List <AlienBullet> ABulletstoRemove   = new List <AlienBullet>();
        List <CaveBlock>   CaveBlocksToRemove = new List <CaveBlock>();

        foreach (var aBullet in AlienBullets)
        {
            // Console.WriteLine(Player.CollidedWith(aBullet));
            // Console.WriteLine(AlienBullets.Count);
            if (aBullet.IsOffScreen(GameWindow))
            {
                ABulletstoRemove.Add(aBullet);
            }

            if (CaveBlocks.Count != 0)
            {
                foreach (var cBlock in CaveBlocks)
                {
                    if (cBlock.CollidedWith(aBullet))
                    {
                        ABulletstoRemove.Add(aBullet);
                        CaveBlocksToRemove.Add(cBlock);
                        cBlock.CaveCollide.Play();
                    }
                }
            }

            if (Player.CollidedWith(aBullet))
            {
                ABulletstoRemove.Add(aBullet);
                Player.LoseLives();
                LoseLifeSound.Play();
            }
        }
        foreach (var aBullet in ABulletstoRemove)
        {
            AlienBullets.Remove(aBullet);
        }
        foreach (var cBlock in CaveBlocksToRemove)
        {
            CaveBlocks.Remove(cBlock);
        }
        ABulletstoRemove.Clear();
        CaveBlocksToRemove.Clear();
    }