示例#1
0
        public Verden(Game game) : base(game)
        {
            _juvelListe  = new List <Juvel>();
            _fiendeListe = new List <Fiende>();
            _juvelListe2 = new List <Juvel>();

            _spilleren     = InitGame.Spilleren;
            KollisjonsKart = InitGame.KollisjonsKart;
            SoundEffect juvelLyd = InitGame.JuvelLyd;

            _juvelLydInstance        = juvelLyd.CreateInstance();
            _juvelLydInstance.Pitch  = 0;
            _oppsamledeJuvelerLevel1 = 0;
            _oppsamledeJuvelerLevel2 = 0;
            _oppsamledeJuvelerLevel3 = 0;
            _juvelerILevel1          = 0;
            _juvelerILevel2          = 0;
            _juvelerILevel3          = 0;

            _spriteBatch = new SpriteBatch(game.GraphicsDevice);

            PlaceEnemies(KollisjonsKart); //Plasserer fiender
            PlaceJewels(KollisjonsKart);  //Plasserer juveler
            CountJewels(_juvelListe);     //Teller antall juveler, bruker metode fordi når brukeren restarter spillet brukes den samme metoden men med en annen (backup) liste
        }
示例#2
0
        /// <summary>
        /// Skyter på spilleren
        /// </summary>
        /// <param name="gameTime"></param>
        /// <param name="spiller"></param>
        private void ShootLaserBeam(GameTime gameTime, Spiller spiller)
        {
            if (_bossLaserList.Count <= 0 || _bossLaserList.Equals(null))
            {
                return;
            }

            for (int i = 0; i < _bossLaserList.Count; i++)
            {
                _bossLaserList[i].GammelPosisjon = _bossLaserList[i].Posisjon;
                _bossLaserList[i].Posisjon      += _bossLaserList[i].Retning * _bossLaserList[i].Hastighet;

                //Holde styr på hvor lenge den har "levd" sånn at vi kan fjerne den når den overgår en viss grense
                _bossLaserList[i].TotalLivsTid += gameTime.ElapsedGameTime.Milliseconds;

                if (_bossLaserList[i].Posisjon.Y <= 5) //Fjerne når den går for høyt
                {
                    _bossLaserList.RemoveAt(i);
                    break;
                }

                //Avstand mellom spiller og laserstråle
                var laserBeamToPlayerDistance = _bossLaserList[i].Posisjon - spiller.Posisjon;
                //Fjerner partikkel om den overskrider livstiden sin
                if (_bossLaserList[i].TotalLivsTid > _bossLaserList[i].LivsTid)
                {
                    _bossLaserList.RemoveAt(i);
                }

                //Gjør skade om den treffer, og fjerner particle
                if (laserBeamToPlayerDistance.LengthSquared() < 900)
                {
                    spiller.Farge  = Color.Red; // bytter farge
                    spiller.Helse -= 10;
                    _bossLaserList.RemoveAt(i); //fjerner partikkel
                }

                try //try/catch tilfelle out of bound.
                {
                    //samme kollisjonsmetode som brukes for spiller
                    var index = (int)_bossLaserList[i].Posisjon.Y * Verden.KollisjonsKart.Width +
                                (int)_bossLaserList[i].Posisjon.X;

                    if (Verden.KollisjonsKartData[index] == Color.Black) // Svartfarge indikerer bakke og kollisjon
                    {
                        _bossLaserList.RemoveAt(i);                      //fjerne partikkel
                    }
                }
                catch
                {
                    //out of bound exception
                }
            }
        }
示例#3
0
 public Fiende(Vector2 posisjon)
 {
     _skyteTimer     = 0;
     _laserBeamList  = new List <TurretLaser>();
     _rotasjonGun    = 0f;
     _gunPosisjon    = posisjon + new Vector2(0, -2);
     Posisjon        = posisjon;
     IsShooting      = false;
     _texture2D      = InitGame.FiendeGunTexture2D;   //Texture fra InitGame
     _texture2DLaser = InitGame.FiendeLaserTexture2D; //Texture fra InitGame
     _spiller        = InitGame.Spilleren;
     _boss           = InitGame.TheBoss;
 }
示例#4
0
        protected override void Initialize()
        {
            // Sette skjermstørrelse
            //Monogame er fremdeles litt buggy og vi har ikke tilgang på Windows.Forms
            //Fullscreen og position kan bl.a. ikke settes.
            _graphics.PreferredBackBufferHeight = 820;
            _graphics.PreferredBackBufferWidth  = 1260;
            _graphics.ApplyChanges();
            _spriteBatch = new SpriteBatch(GraphicsDevice);
            _fontScale   = 1.0f;
            CurrentLevel = Level.One;
            var spillerPos = new Vector2(1700, 800);

            Spilleren = new Spiller(spillerPos);

            base.Initialize();
        }