internal string SelectKeyBinds() { KeyboardState kstate = Keyboard.GetState(); if (kstate.IsKeyDown(KeyBinds.Instance().Up)) { return("UP"); } else if (kstate.IsKeyDown(KeyBinds.Instance().UpRight)) { return("UPRIGHT"); } else if (kstate.IsKeyDown(KeyBinds.Instance().UpLeft)) { return("UPLEFT"); } else if (kstate.IsKeyDown(KeyBinds.Instance().Down)) { return("DOWN"); } else if (kstate.IsKeyDown(KeyBinds.Instance().DownRight)) { return("DOWNRIGHT"); } else if (kstate.IsKeyDown(KeyBinds.Instance().DownLeft)) { return("DOWNLEFT"); } else if (kstate.IsKeyDown(KeyBinds.Instance().Right)) { return("RIGHT"); } else if (kstate.IsKeyDown(KeyBinds.Instance().Left)) { return("LEFT"); } else if (kstate.IsKeyDown(KeyBinds.Instance().Slow)) { return("SLOW"); } else if (kstate.IsKeyDown(KeyBinds.Instance().Fire)) { return("FIRE"); } else { return(string.Empty); } }
internal bool SetKeyBind(string keybindSelect) { KeyboardState kstate = Keyboard.GetState(); KeySetPrompt2 = KeySetPrompt2 = $"You have chosen to rebind {keybindSelect}"; KeySetPrompt3 = "Press the currently bound key and the key to rebind"; switch (keybindSelect) { case "UP": if (kstate.GetPressedKeys().Length >= 1) { foreach (Keys key in kstate.GetPressedKeys()) { if (key != KeyBinds.Instance().Up) { KeyBinds.Instance().Up = kstate.GetPressedKeys()[0]; return(true); } } return(false); } else { return(false); } case "UPLEFT": if (kstate.GetPressedKeys().Length >= 1) { foreach (Keys key in kstate.GetPressedKeys()) { if (key != KeyBinds.Instance().UpLeft) { KeyBinds.Instance().UpLeft = kstate.GetPressedKeys()[0]; return(true); } } return(false); } else { return(false); } case "UPRIGHT": if (kstate.GetPressedKeys().Length >= 1) { foreach (Keys key in kstate.GetPressedKeys()) { if (key != KeyBinds.Instance().UpRight) { KeyBinds.Instance().UpRight = kstate.GetPressedKeys()[0]; return(true); } } return(false); } else { return(false); } case "DOWN": if (kstate.GetPressedKeys().Length >= 1) { foreach (Keys key in kstate.GetPressedKeys()) { if (key != KeyBinds.Instance().Down) { KeyBinds.Instance().Down = kstate.GetPressedKeys()[0]; return(true); } } return(false); } else { return(false); } case "DOWNLEFT": if (kstate.GetPressedKeys().Length >= 1) { foreach (Keys key in kstate.GetPressedKeys()) { if (key != KeyBinds.Instance().DownLeft) { KeyBinds.Instance().DownLeft = kstate.GetPressedKeys()[0]; return(true); } } return(false); } else { return(false); } case "DOWNRIGHT": if (kstate.GetPressedKeys().Length >= 1) { foreach (Keys key in kstate.GetPressedKeys()) { if (key != KeyBinds.Instance().DownRight) { KeyBinds.Instance().DownRight = kstate.GetPressedKeys()[0]; return(true); } } return(false); } else { return(false); } case "RIGHT": if (kstate.GetPressedKeys().Length >= 1) { foreach (Keys key in kstate.GetPressedKeys()) { if (key != KeyBinds.Instance().Right) { KeyBinds.Instance().Right = kstate.GetPressedKeys()[0]; return(true); } } return(false); } else { return(false); } case "LEFT": if (kstate.GetPressedKeys().Length >= 1) { foreach (Keys key in kstate.GetPressedKeys()) { if (key != KeyBinds.Instance().Left) { KeyBinds.Instance().Left = kstate.GetPressedKeys()[0]; return(true); } } return(false); } else { return(false); } case "SLOW": if (kstate.GetPressedKeys().Length >= 1) { foreach (Keys key in kstate.GetPressedKeys()) { if (key != KeyBinds.Instance().Slow) { KeyBinds.Instance().Slow = kstate.GetPressedKeys()[0]; return(true); } } return(false); } else { return(false); } case "FIRE": if (kstate.GetPressedKeys().Length >= 1) { foreach (Keys key in kstate.GetPressedKeys()) { if (key != KeyBinds.Instance().Fire) { KeyBinds.Instance().Fire = kstate.GetPressedKeys()[0]; return(true); } } return(false); } else { return(false); } default: return(false); } }
/// <summary> /// This is called when the game should draw itself. /// </summary> /// <param name="gameTime">Provides a snapshot of timing values.</param> protected override void Draw(GameTime gameTime) { GraphicsDevice.Clear(Color.Black); //Add your drawing code here spriteBatch.Begin(); spriteBatch.Draw(backgroundSprite, new Vector2(0, 0), Color.White); //spriteBatch.Draw(backgroundGrid, new Vector2(0, 0), Color.White); if (menuOpen) { if (keySet) { spriteBatch.DrawString(gameFont, Menu.keySetPrompt1, new Vector2(100, 100), Color.Aqua); spriteBatch.DrawString(gameFont, $"Up:{KeyBinds.Instance().Up.ToString()} Down:{KeyBinds.Instance().Down.ToString()} Right:{KeyBinds.Instance().Right.ToString()} Left:{KeyBinds.Instance().Left}", new Vector2(100, 150), Color.Aquamarine); spriteBatch.DrawString(gameFont, $"UpLeft:{KeyBinds.Instance().UpLeft.ToString()} DownLeft:{KeyBinds.Instance().DownLeft.ToString()} UpRight:{KeyBinds.Instance().UpRight.ToString()} DownRight:{KeyBinds.Instance().DownRight}", new Vector2(100, 200), Color.Aquamarine); spriteBatch.DrawString(gameFont, $"Slow:{KeyBinds.Instance().Slow.ToString()} Fire:{KeyBinds.Instance().Fire.ToString()}", new Vector2(100, 250), Color.Aquamarine); spriteBatch.DrawString(gameFont, "Press ENTER to return to game M to return to menu", new Vector2(100, 300), Color.Aqua); spriteBatch.DrawString(gameFont, menu.KeySetPrompt2, new Vector2(100, 350), Color.Aqua); spriteBatch.DrawString(gameFont, menu.KeySetPrompt3, new Vector2(100, 400), Color.Aqua); } else { spriteBatch.DrawString(gameFont, Menu.menuString1, new Vector2(100, 100), Color.Fuchsia); spriteBatch.DrawString(gameFont, Menu.menuString2, new Vector2(100, 150), Color.Fuchsia); spriteBatch.DrawString(gameFont, Menu.menuString3, new Vector2(100, 200), Color.Fuchsia); } } else if (gameOver) { spriteBatch.DrawString(gameFont, "Game Over!", new Vector2(300, 100), Color.Red); spriteBatch.DrawString(gameFont, "Press ESC to quit R to reload", new Vector2(200, 150), Color.Red); } else { spriteBatch.Draw(playerSprite, new Vector2(player.Position.X - Constants.PLAYER_RADIUS, player.Position.Y - Constants.PLAYER_RADIUS), player.Color); var kstate = Keyboard.GetState(); if (kstate.IsKeyDown(KeyBinds.Instance().Slow)) { spriteBatch.Draw(hitboxSprite, new Vector2(player.Position.X - 6, player.Position.Y - 2), Color.Chartreuse); } //spriteBatch.DrawString(gameFont, (level.FrameCount/60).ToString(), new Vector2(780, 70), Color.Chartreuse); spriteBatch.DrawString(gameFont, $"Player Lives: {player.Lives}", new Vector2(725, 70), Color.Chartreuse); foreach (MobileEntity mob in level.GetMobs()) { if (mob.Active) { if (mob.MobType == "BulletTypeA") { spriteBatch.Draw(bulletTypeASprite, mob.Position, mob.Color); } if (mob.MobType == "BulletTypeB") { spriteBatch.Draw(bulletTypeBSprite, mob.Position, mob.Color); } if (mob.MobType == "TypeA") { spriteBatch.Draw(typeASprite, mob.Position, mob.Color); } if (mob.MobType == "TypeB") { spriteBatch.Draw(typeBSprite, mob.Position, mob.Color); } if (mob.MobType == "MidBoss") { spriteBatch.Draw(midBossSprite, mob.Position, Color.Orange); } if (mob.MobType == "Boss") { spriteBatch.Draw(bossSprite, mob.Position, Color.HotPink); } } } } spriteBatch.End(); base.Draw(gameTime); }