예제 #1
0
        /// <summary>
        ///  Update metod som flyttar bonusens position var 3:de sekund samt kollar ifall bonusen har blivit intersectad. Den flyttas till random position
        ///  och timern resettas och alltså börjar den om igen.
        /// </summary>
        #region Update metod
        public void Update(Ball ball1, GameTime gameTime)
        {
            timer += gameTime.ElapsedGameTime.TotalSeconds;

            if (timer > 3)
            {
                bonusPos = new Vector2(boxLocation.Next(0, 785), boxLocation.Next(0, 480));
                timer    = 0;
            }

            if (ball1.BallHitbox.Intersects(bonusHitbox))
            {
                intersect = true;
            }

            bonusHitbox.Location = bonusPos.ToPoint();
        }
예제 #2
0
        /// <summary>
        /// Här uppdateras bara paddelns position. Datorn kollar vilken tangent som är nedtryckt och addar eller subtraherar fart(5) från Y positionen.
        /// Boolean variabeln på paddel objekten kollar också ifall den är stor eller liten, här regleras detta så att inte paddlarna kan gå utanför skärmen
        /// när ena paddeln är stor och andra liten.
        /// </summary>
        /// <param name="box"></param>
        #region Update metod
        public void Update(Bonus box)
        {
            kstate = Keyboard.GetState();

            //Kollar ifall du trycker ned eller upp på tangenterna, isåfall gå + eller - 5 på y värdet
            if (kstate.IsKeyDown(Up))
            {
                paddlePos.Y -= fart;
            }

            if (kstate.IsKeyDown(Down))
            {
                paddlePos.Y += fart;
            }

            //Kollar ifall paddeln är stor och sedan anpassar programmet så att den inte kan röra sig utanför skärmen
            if (big == true)
            {
                if (paddlePos.Y < 0)
                {
                    paddlePos.Y = 0;
                }

                if (paddlePos.Y > 332)
                {
                    paddlePos.Y = 332;
                }
            }

            //Kollar ifall paddeln är liten och sedan anpassar programmet så att den inte kan röra sig utanför skärmen
            if (small == true)
            {
                if (paddlePos.Y < 0)
                {
                    paddlePos.Y = 0;
                }

                if (paddlePos.Y > 400)
                {
                    paddlePos.Y = 400;
                }
            }

            //paddelns rektangel flyttar sig med paddelns position
            paddleHitbox.Location = paddlePos.ToPoint();
        }
예제 #3
0
        /// <summary>
        ///  Bollens hastighet, riktning och begränsningar  kollas/uppdateras här. Bollpositionen ökar med +8 eller -8  hela tiden genom att man adderar eller
        ///  subtraherar 8 från bollpositionen hela tiden.
        /// </summary>
        #region Update metod
        public void Update()
        {
            ballPos.X += velocity.X;
            ballPos.Y += velocity.Y;

            //Ifall bollen går över eller under skärmen multiplicera med -1
            if (ballPos.Y <= 0)
            {
                velocity.Y *= -1;
            }

            if (ballPos.Y >= 480 - 19)
            {
                velocity.Y *= -1;
            }

            //Bollhitboxen ska ha boll positionen
            ballHitbox.Location = ballPos.ToPoint();
        }
예제 #4
0
        protected override void Update(GameTime gameTime)
        {
            if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed || Keyboard.GetState().IsKeyDown(Keys.Escape))
            {
                Exit();
            }

            // TODO: Add your update logic here
            KeyboardState kb = Keyboard.GetState();
            float         dt = (float)gameTime.ElapsedGameTime.TotalSeconds;

            if (kb.IsKeyDown(Keys.S))
            {
                posPlayer1.Y += velPlayer * dt;
            }
            if (kb.IsKeyDown(Keys.W))
            {
                posPlayer1.Y -= velPlayer * dt;
            }
            if (kb.IsKeyDown(Keys.Down))
            {
                posPlayer2.Y += velPlayer * dt;
            }
            if (kb.IsKeyDown(Keys.Up))
            {
                posPlayer2.Y -= velPlayer * dt;
            }

            if (posPlayer1.Y < 0)
            {
                posPlayer1.Y = 0;
            }
            else if (posPlayer1.Y > limitsPlayer.Y)
            {
                posPlayer1.Y = limitsPlayer.Y;
            }
            if (posPlayer2.Y < 0)
            {
                posPlayer2.Y = 0;
            }
            else if (posPlayer2.Y > limitsPlayer.Y)
            {
                posPlayer2.Y = limitsPlayer.Y;
            }

            posBall += dirBall * dt;
            if (posBall.X < 0)
            {
                posBall.X = 0;
                dirBall.X = velBall;
                score2++;
            }
            else if (posBall.X > limitsBall.X)
            {
                posBall.X = limitsBall.X;
                dirBall.X = -velBall;
                score1++;
            }
            if (posBall.Y < 0)
            {
                posBall.Y = 0;
                dirBall.Y = velBall;
            }
            else if (posBall.Y > limitsBall.Y)
            {
                posBall.Y = limitsBall.Y;
                dirBall.Y = -velBall;
            }

            scorePanel      = score1 + "  /  " + score2;
            posScorePanel.X = (screenSize.X - scoreFont.MeasureString(scorePanel).X) / 2;

            if (new Rectangle(posPlayer1.ToPoint(), sizePlayer.ToPoint()).Intersects(
                    new Rectangle(posBall.ToPoint(), sizeBall.ToPoint())))
            {
                posBall.X = posPlayer1.X + sizePlayer.X;
                dirBall.X = velBall;
            }
            if (new Rectangle(posPlayer2.ToPoint(), sizePlayer.ToPoint()).Intersects(
                    new Rectangle(posBall.ToPoint(), sizeBall.ToPoint())))
            {
                posBall.X = posPlayer2.X - sizeBall.X;
                dirBall.X = -velBall;
            }

            base.Update(gameTime);
        }