Exemple #1
0
        /// <summary>
        /// UPDATE
        /// </summary>
        /// <param name="gameTime"></param>
        public void Update(GameTime gameTime)
        {
            _gammelPosisjon = Posisjon;                              //kontrollverdier
            _fargeTimer    += gameTime.ElapsedGameTime.Milliseconds; // så ikke blinkingen av farge skjer umiddelbart og for raskt

            //lager x og y komponenter av rotasjonsvinkel og skalerer opp med spilleraksellerasjon.
            Hastighet += new Vector2((float)Math.Cos(_rotasjon), (float)Math.Sin(_rotasjon)) * _spillerAksellerasjon;
            Hastighet += Verden.Gravitasjon * new Vector2(0, 1f); //Gravitasjon , positiv Y-akse nedover.
            //legger Hastighetsvektoren til posisjon.
            Posisjon += Hastighet;

            //max fartsgrense for spiller
            if (Hastighet.X >= 7f || Hastighet.Y >= 7)
            {
                Hastighet *= 0.98f;
            }
            if (Hastighet.X <= -7f || Hastighet.Y <= -7)
            {
                Hastighet *= 0.98f;
            }

            if (_fargeTimer > 500 && Farge.Equals(Color.Red))
            {
                _fargeTimer = 0; //nullstiller timer, så fargen kan returnere til normal ved et definert tidspunkt.
                Farge       = Color.Pink;
            }

            if (Helse <= 0)      // om helse er under 0
            {
                IsDead = true;   //game over
            }
            if (Posisjon.Y <= 5) //grense på "taket" til himmelen
            {
                Hastighet *= -1;
            }

            //Nullstille rotasjon slik at rotasjon alltid er mellom 0 og 2Pi
            if (_rotasjon == MathHelper.TwoPi)
            {
                _rotasjon = 0;
            }
            if (_rotasjon == MathHelper.TwoPi * -1)
            {
                _rotasjon = 0;
            }

            CheckInput(gameTime); //Sjekker keyboardinput for w-a-d og turbo
            CheckCollision();     //Sjekker kollisjon mellom skip og terrain
        }