Пример #1
0
        private void CheckCollisions( GameUnit unit )
        {
            if (unit.SpriteName.Contains("cloud"))
            {
                if (unit.Bounds.Top > 600)
                {
                    unit.Position = new Vector2(200,-64) + new Vector2(randGen.Next(-180, 180), 0);
                }
            }
            else if (unit.SpriteName.Contains("tree"))
            {
                if (unit.Bounds.Top > 600)
                {
                    unit.Position = unit.Position * Vector2.UnitX  + new Vector2(randGen.Next(-10, 10), -64);
                }
            }
            else if (unit.SpriteName.Contains("ebullet"))
            {
                if (unit.Bounds.Top > 600)
                {
                    deadBullets.Add(unit);
                }
                else
                {
                    if (unit.IsCollidingWith(playerOne))
                    {
                        //GAME OVER D=
                        deadBullets.Add(unit);

                        //Run BOOM Animation
                        GameUnit anim = new GameUnit("explosion", playerOne.Position, new Vector2(64, 64));
                        anim.CurrentFrame = 0;
                        anim.IsAnimating = true;

                        animations.Add(anim);

                        //Run Sound Effect
                        soundBoom.Play();

                        //Dead
                        deadUnits.Add(playerOne);
                        activeGameState = GameState.GameOver;
                        this.IsMouseVisible = true;
                    }
                }

            }
            else if (unit.SpriteName.Contains("bullet"))
            {
                if (unit.Bounds.Top < 0)
                {
                    deadBullets.Add(unit);
                }
                else
                {
                    foreach (GameUnit e in enemies)
                    {
                        if (unit.IsCollidingWith(e))
                        {

                            deadBullets.Add(unit);

                            //Run BOOM Animation
                            GameUnit anim = new GameUnit("explosion", e.Position, new Vector2(64, 64));
                            anim.CurrentFrame = 0;
                            anim.IsAnimating = true;

                            animations.Add(anim);

                            //Run Sound Effect
                            soundBoom.Play();

                            playerOne.Score += (float)(Math.Pow(100, ((double)e.Position.Y / 600d))) * (float)(1f / 600f * (float)e.Position.Y);

                            //Spawn 'New' Enemy
                            e.Position = new Vector2(e.Position.X, 0) + new Vector2(0, randGen.Next(-200, -64));

                            playerOne.Score += (float)timeAlive;
                            break;
                        }
                    }
                }
            }
            else if (unit.SpriteName.Contains("enemy"))
            {
                //ENEMY!
                if (unit.IsCollidingWith(playerOne) || unit.Bounds.Bottom >= 600)
                {
                    //Game Over...
                    //Run BOOM Animation
                    GameUnit anim = new GameUnit("explosion", unit.Position, new Vector2(64, 64));
                    anim.CurrentFrame = 0;
                    anim.IsAnimating = true;

                    GameUnit anim2 = new GameUnit("explosion", playerOne.Position, new Vector2(64, 64));
                    anim2.CurrentFrame = 0;
                    anim2.IsAnimating = true;

                    animations.Add(anim);
                    animations.Add(anim2);

                    //Run Sound Effect
                    soundBoom.Play();
                    soundBoom.Play();

                    deadUnits.Add(playerOne);
                    deadUnits.Add(unit);

                    enemies.Remove(unit);

                    playerOne.Score += (float)timeAlive;
                    activeGameState = GameState.GameOver;
                    this.IsMouseVisible = true;
                }
            }
        }
Пример #2
0
        private void CheckCollisions(GameUnit unit)
        {
            if (unit.SpriteName.Contains("cloud"))
            {
                if (unit.Bounds.Top > 600)
                {
                    unit.Position = new Vector2(200, -64) + new Vector2(randGen.Next(-180, 180), 0);
                }
            }
            else if (unit.SpriteName.Contains("tree"))
            {
                if (unit.Bounds.Top > 600)
                {
                    unit.Position = unit.Position * Vector2.UnitX + new Vector2(randGen.Next(-10, 10), -64);
                }
            }
            else if (unit.SpriteName.Contains("ebullet"))
            {
                if (unit.Bounds.Top > 600)
                {
                    deadBullets.Add(unit);
                }
                else
                {
                    if (unit.IsCollidingWith(playerOne))
                    {
                        //GAME OVER D=
                        deadBullets.Add(unit);

                        //Run BOOM Animation
                        GameUnit anim = new GameUnit("explosion", playerOne.Position, new Vector2(64, 64));
                        anim.CurrentFrame = 0;
                        anim.IsAnimating  = true;

                        animations.Add(anim);

                        //Run Sound Effect
                        soundBoom.Play();

                        //Dead
                        deadUnits.Add(playerOne);
                        activeGameState     = GameState.GameOver;
                        this.IsMouseVisible = true;
                    }
                }
            }
            else if (unit.SpriteName.Contains("bullet"))
            {
                if (unit.Bounds.Top < 0)
                {
                    deadBullets.Add(unit);
                }
                else
                {
                    foreach (GameUnit e in enemies)
                    {
                        if (unit.IsCollidingWith(e))
                        {
                            deadBullets.Add(unit);

                            //Run BOOM Animation
                            GameUnit anim = new GameUnit("explosion", e.Position, new Vector2(64, 64));
                            anim.CurrentFrame = 0;
                            anim.IsAnimating  = true;

                            animations.Add(anim);

                            //Run Sound Effect
                            soundBoom.Play();

                            playerOne.Score += (float)(Math.Pow(100, ((double)e.Position.Y / 600d))) * (float)(1f / 600f * (float)e.Position.Y);

                            //Spawn 'New' Enemy
                            e.Position = new Vector2(e.Position.X, 0) + new Vector2(0, randGen.Next(-200, -64));

                            playerOne.Score += (float)timeAlive;
                            break;
                        }
                    }
                }
            }
            else if (unit.SpriteName.Contains("enemy"))
            {
                //ENEMY!
                if (unit.IsCollidingWith(playerOne) || unit.Bounds.Bottom >= 600)
                {
                    //Game Over...
                    //Run BOOM Animation
                    GameUnit anim = new GameUnit("explosion", unit.Position, new Vector2(64, 64));
                    anim.CurrentFrame = 0;
                    anim.IsAnimating  = true;

                    GameUnit anim2 = new GameUnit("explosion", playerOne.Position, new Vector2(64, 64));
                    anim2.CurrentFrame = 0;
                    anim2.IsAnimating  = true;

                    animations.Add(anim);
                    animations.Add(anim2);

                    //Run Sound Effect
                    soundBoom.Play();
                    soundBoom.Play();

                    deadUnits.Add(playerOne);
                    deadUnits.Add(unit);

                    enemies.Remove(unit);

                    playerOne.Score    += (float)timeAlive;
                    activeGameState     = GameState.GameOver;
                    this.IsMouseVisible = true;
                }
            }
        }