Пример #1
0
        /// <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;
                }
            }
        }
Пример #2
0
        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();
        }