/// <summary> /// Sjekker kollisjon, setter fargen på skipet til rødt og spilleren mister helse (eller dør) /// </summary> private void CheckCollision() { //Kollisjonspunkter på skipet ift posisjon _høyreVinge = new Vector2(Posisjon.X + 40, Posisjon.Y); _venstreVinge = new Vector2(Posisjon.X - 40, Posisjon.Y); _haleVenstre = new Vector2(Posisjon.X - 40, Posisjon.Y + 20); _haleHøyre = new Vector2(Posisjon.X + 40, Posisjon.Y + 20); _snuteHøyre = new Vector2(Posisjon.X + 40, Posisjon.Y - 20); _snuteVenstre = new Vector2(Posisjon.X - 40, Posisjon.Y - 20); //Kollidere med terrain (det som er i KollisjonsKart) if (Verden.Collision(_venstreVinge) || Verden.Collision(_høyreVinge) || Verden.Collision(_haleVenstre) || Verden.Collision(_haleHøyre) || Verden.Collision(_snuteVenstre) || Verden.Collision(_snuteHøyre)) { Posisjon = _gammelPosisjon; //Liten if/else fordi man kunne henge seg opp i bakken når man "lander" if (Hastighet.Y > 0.1 || Hastighet.Y < 0.1) { Hastighet *= -0.3f; } else { Hastighet = Hastighet; } if (Hastighet.Y >= 2 || Hastighet.Y <= -2) //skade basert på spillerhastighet. { Helse -= 3; Farge = Color.Red; } else if (Hastighet.Y >= 4 || Hastighet.Y <= -4) //ekstra skade for høyere hastighet enn 4 { Helse -= 10; Farge = Color.Red; } else if (Hastighet.Y >= 5 || Hastighet.Y <= -5) //dør om hastighet er større enn 5 { Helse = 0; IsDead = true; } } }
protected override void LoadContent() { _font1 = Content.Load <SpriteFont>("SpriteFont1"); _backMusic = Content.Load <SoundEffect>("sang"); //Bakgrunnsmusikk KollisjonsKart = Content.Load <Texture2D>("CollisionMapPart1"); JuvelTexture2D = Content.Load <Texture2D>("shard2"); FiendeGunTexture2D = Content.Load <Texture2D>("enemy_gun.png"); FiendeLaserTexture2D = Content.Load <Texture2D>("laserBeam.png"); JuvelLyd = Content.Load <SoundEffect>("Xylo1"); _fargeKartBakke = Content.Load <Texture2D>("ColorMapPart1"); _fargeKartBakkeDel2 = Content.Load <Texture2D>("ColorMapPart2"); _fargeKartHimmel = Content.Load <Texture2D>("colormaphimmel"); _blomstKartDel1 = Content.Load <Texture2D>("FlowerMap"); _blomstKartDel2 = Content.Load <Texture2D>("FlowerMapPart2"); _myEffect = Content.Load <Effect>("himmelEffekt"); //Shader Spilleren.LoadContent(this); //Kamera Camera = new Camera(_fargeKartBakke.Width, new Vector2(Spilleren.Posisjon.X + 250, Spilleren.Posisjon.Y)); _verden = new Verden(this); Components.Add(_verden); //Legger til Verden som Game component if (!TheBoss.IsDead) { TheBoss.LoadContent(this); //Loade content for boss } _songInstance = _backMusic.CreateInstance(); _songInstance.IsLooped = true; _songInstance.Volume = 0.1f; _songInstance.Pitch = 1f; _songInstance.Pan = 1f; _songInstance.Play(); }