Basic gamepad with force feedback impl

This commit is contained in:
2021-04-24 02:47:17 +02:00
parent db9c3cceea
commit 9f66f9d8fb
109 changed files with 205 additions and 196 deletions
+15 -6
View File
@@ -17,8 +17,8 @@ namespace EvilSatellites.Screens
public ScreenManager _Manager;
public ScreenState _State;
public InputManager Inputs = new InputManager();
private double DescWaitTime;
private bool DescRead;
public ScreenManager Manager { get => _Manager; set => _Manager = value; }
public ScreenState State { get => _State; set => _State = value; }
@@ -30,6 +30,8 @@ namespace EvilSatellites.Screens
Tolk.Output(MenuOptions.Entries[CursorPosition].Name);
Manager.Sound.PlayOneshot(@"sfx/ui/menuOpen.wav");
Manager.Music.Play("menu1");
DescWaitTime = 0;
DescRead = false;
}
public virtual void Deactivate()
@@ -40,15 +42,15 @@ namespace EvilSatellites.Screens
public void HandleInput(GameTime gameTime, KeyboardState inputs)
{
Inputs.Update();
if (Inputs.IsJustPressed(Keys.Down))
if (Inputs.IsJustPressed(Keys.Down) || Inputs.IsJustPressed(Buttons.DPadDown))
{
NextItem();
}
if (Inputs.IsJustPressed(Keys.Up))
if (Inputs.IsJustPressed(Keys.Up) || Inputs.IsJustPressed(Buttons.DPadUp))
{
PreviousItem();
}
if (Inputs.IsJustPressed(Keys.Enter))
if (Inputs.IsJustPressed(Keys.Enter) || Inputs.IsJustPressed(Buttons.A))
{
SelectItem();
}
@@ -57,7 +59,12 @@ namespace EvilSatellites.Screens
public virtual void Update(GameTime gameTime)
{
Manager.Sound.Update();
DescWaitTime += gameTime.ElapsedGameTime.TotalMilliseconds;
if (DescWaitTime > 2000 && DescRead == false)
{
Tolk.Output(MenuOptions.Entries[CursorPosition].Description, false);
DescRead = true;
}
}
public void PreviousItem()
@@ -92,6 +99,8 @@ namespace EvilSatellites.Screens
{
Manager.Sound.PlayOneshot(@"sfx/ui/menuMove.wav");
Tolk.Output(MenuOptions.Entries[CursorPosition].Name, true);
DescRead = false;
DescWaitTime = 0;
}
public virtual void SelectItem()