/// <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 }