예제 #1
0
 public override void Collision(Chicken chick)
 {
     position = new Vector2(2000f, 2000f);
 }
예제 #2
0
        /// <summary>
        /// Allows the game component to update itself.
        /// </summary>
        /// <param name="gameTime">Provides a snapshot of timing values.</param>
        public override void Update(GameTime gameTime)
        {
            int     width         = Game.Window.ClientBounds.Width;
            int     height        = Game.Window.ClientBounds.Height;
            Vector2 startPosition = new Vector2(0, (float)height);

            //MouseState mouseState = Mouse.GetState();
            //Vector2 path;
            //if (mouseState.LeftButton == ButtonState.Pressed)
            //{
            //    path = new Vector2((float)mouseState.X, (float)mouseState.Y);
            //    projectile = new Projectile(path);
            //    spriteList.Add(projectile);
            //}
            player1.Update(gameTime, Game.Window.ClientBounds);
            //player2.Update(gameTime, Game.Window.ClientBounds);
            //reticle.Update(gameTime, Game.Window.ClientBounds);
            Vector2    mousePath;
            MouseState mouseState = Mouse.GetState();

            if (mouseState.LeftButton == ButtonState.Pressed)
            {
                mousePath = new Vector2(mouseState.X, mouseState.Y);
                projectile.shoot(mousePath);
            }
            // update each automated sprite
            foreach (Sprite sprite in spriteList)
            {
                sprite.Update(gameTime, Game.Window.ClientBounds);
            }

            // collision/ is off screen?

            //Projectile hit?
            if (projectile.collisionRect.Intersects(player1.collisionRect))
            {
                screamInstance.Play();
                projectile.position = Vector2.Zero;
                player1.position    = startPosition;
                ++p1Hits;
                if (p1Hits >= 6)
                {
                    loseInstance.Play();
                }
            }

            /*
             * if (projectile.collisionRect.Intersects(player2.collisionRect))
             * {
             *  projectile.position = Vector2.Zero;
             *  player2.position = startPosition;
             ++p2Hits;
             *  if (p2Hits >= 6)
             *  {
             *      //Game.Exit();
             *  }
             * }
             */
            if (projectile.position.X > width - 2 || projectile.position.X < 2 ||
                projectile.position.Y > height - 2 || projectile.position.Y < 2)
            {
                projectile.position = Vector2.Zero;
                projectile.shoot(Vector2.Zero);
            }
            foreach (Platform plat in platy)
            {
                if (plat.isMoving)
                {
                    plat.oscillate();
                }
                if (player1.collisionRect.Intersects(plat.collisionRect))
                {
                    player1.Collision(plat);
                }

                /*
                 * if (player2.collisionRect.Intersects(plat.collisionRect))
                 * {
                 *  player2.Collision(plat);
                 * }
                 * */
            }
            Chicken hick = null;

            foreach (Chicken chik in chicks)
            {
                if (chik.collisionRect.Intersects(player1.collisionRect))
                {
                    player1.Collision(chik);
                    ++foxyCounter;
                    if (foxyCounter >= 2)
                    {
                        winInstance.Play();
                        foxyCounter = 0;
                        p1Hits      = 0;
                    }
                }
            }


            foreach (Sprite sprite in spriteList)
            {
                if (sprite.collisionRect.Intersects(player1.collisionRect))
                {
                    player1.Collision(sprite);
                    sprite.Collision(player1);
                }

                /*
                 * if (sprite.collisionRect.Intersects(player2.collisionRect))
                 * {
                 *  player2.Collision(sprite);
                 *  sprite.Collision(player2);
                 * }
                 * */
            }

            base.Update(gameTime);
        }