Ejemplo n.º 1
0
        /// <summary>
        /// Skapar knappar på tangentbodet som visar vad som händer om jag trycker ner exempel W
        /// För att se till så att spelaren inte kan gå utanför spelområdet så avänder jag mig av && pos.x/y > 0
        /// </summary>
        public void PlayerUpdate(GameTime gameTime)
        {
            velocity = Vector2.Zero;
            if (Keyboard.GetState().IsKeyDown(Keys.S) && pos.Y <= 480f - 90)
            {
                velocity.Y = 5;
                moving.Update();
            }

            if (Keyboard.GetState().IsKeyDown(Keys.W) && pos.Y > 0)
            {
                velocity.Y = -5;
                moving.Update();
            }

            if (Keyboard.GetState().IsKeyDown(Keys.A) && pos.X > 0)
            {
                velocity.X = -5;
                moving.Update();
            }

            if (Keyboard.GetState().IsKeyDown(Keys.D) && pos.X <= 800f - 65)
            {
                velocity.X = 5;
                moving.Update();
            }

            //När vänster musknapp är nertryckt så skjuts skott i en halvsekund åt gången (ett i taget)
            if (Mouse.GetState().LeftButton == ButtonState.Pressed)
            {
                if (reloadT >= 0.5)
                {
                    skottlista.Add(new Skott(skottTex, pos));
                    reloadT = 0;
                }
            }
            //kod för att kunna uppdatera lista
            foreach (var Skott in skottlista)
            {
                Skott.Update();
            }

            pos     += velocity;
            reloadT += gameTime.ElapsedGameTime.TotalSeconds;
            hitbox   = new Rectangle((int)pos.X, (int)pos.Y, 65, 90);
        }
Ejemplo n.º 2
0
        //Gametime = "speltiden"
        protected override void Update(GameTime gameTime)
        {
            if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed || Keyboard.GetState().IsKeyDown(Keys.Escape))
            {
                Exit();
            }
            /// <summary>
            /// Menyerna uppdateras. Om meny är start så uppdateras start. Om man därefter trycker ner enter så ska spelet börja starta. Om meny inte är start så är meny något annat. exempel game
            /// </summary>
            if (menu == Menu.Start)
            {
                if (Keyboard.GetState().IsKeyDown(Keys.Enter))
                {
                    menu = Menu.Game;
                }
                else if (Mouse.GetState().LeftButton == ButtonState.Pressed && knapp.Contains(Mouse.GetState().Position))
                {
                    menu = Menu.Game;
                }
                if (Keyboard.GetState().IsKeyDown(Keys.P))
                {
                    menu = Menu.Option;
                }
            }
            //´När "Gamemenyn" är igång så uppdateras spelare, animation och fiende
            else if (menu == Menu.Game)
            {
                player.PlayerUpdate(gameTime);
                //Går igenom fiendelistan så varje fiende gör samma sak
                foreach (Fiende f in fiendeList)
                {
                    f.Update();
                }
                animatedSprite.Update();

                foreach (Fiende f in fiendeList)
                {
                    //Om spelare blir träffad = game over
                    if (player.Hitbox.Intersects(f.Hitbox))
                    {
                        menu = Menu.LoserScreen;
                    }
                }

                foreach (Skott s in player.SkottLista)
                {
                    foreach (Fiende f in fiendeList)
                    {
                        if (s.Hitbox.Intersects(f.Hitbox))
                        {
                            deadList.Add(f);
                            deadList.Add(s);
                            //Poäng ökar efter varje fiende som dör
                            poäng++;
                        }
                    }
                }

                foreach (Bas s in deadList)
                {
                    if (s is Skott)
                    {
                        player.SkottLista.Remove((s as Skott));
                    }
                    else if (s is Fiende)
                    {
                        fiendeList.Remove((s as Fiende));
                    }
                }
                int chans = random.Next(0, 1000);
                if (chans <= 10)
                {
                    fiendeList.Add(new Fiende(fiendeTex, player));
                }

                if (Keyboard.GetState().IsKeyDown(Keys.B))
                {
                    menu = Menu.Start;
                }
            }
            else if (menu == Menu.Option)
            {
                if (Keyboard.GetState().IsKeyDown(Keys.P))
                {
                    menu = Menu.Option;
                }
                if (Keyboard.GetState().IsKeyDown(Keys.B))
                {
                    menu = Menu.Start;
                }
            }
            else if (menu == Menu.LoserScreen)
            {
                if (Keyboard.GetState().IsKeyDown(Keys.B))
                {
                    menu = Menu.Start;
                    fiendeList.Clear();
                    poäng = 0;
                }
            }

            //Skott ska träffa fiende. När skott träffar fiende så ska fiende och skott försvinna. Om spelare träffas av fiende så ska spelare försvinna dvs Game Over


            base.Update(gameTime);
            // TODO: Add your update logic here
        }