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