Add project files.
This commit is contained in:
43
FreedomFighter/OmegaInput.cs
Normal file
43
FreedomFighter/OmegaInput.cs
Normal file
@@ -0,0 +1,43 @@
|
||||
using Microsoft.Xna.Framework.Input;
|
||||
|
||||
namespace FreedomFighter;
|
||||
|
||||
/// <summary>
|
||||
/// Replacement for TOmegaInput's keyboard state sets, with the key assignments
|
||||
/// from GameU.dfm: B1=Space, B2=Esc, B3=Enter, B4=RCtrl, B5=1, B6=2, B7=3, B8=M.
|
||||
/// "States" = held; "StatesClicked" = pressed this frame.
|
||||
/// </summary>
|
||||
public class OmegaInput
|
||||
{
|
||||
KeyboardState _prev;
|
||||
KeyboardState _cur;
|
||||
|
||||
public void Update()
|
||||
{
|
||||
_prev = _cur;
|
||||
_cur = Keyboard.GetState();
|
||||
}
|
||||
|
||||
bool Held(Keys k) => _cur.IsKeyDown(k);
|
||||
bool Clicked(Keys k) => _cur.IsKeyDown(k) && _prev.IsKeyUp(k);
|
||||
|
||||
public bool Up => Held(Keys.Up);
|
||||
public bool Down => Held(Keys.Down);
|
||||
public bool Left => Held(Keys.Left);
|
||||
public bool Right => Held(Keys.Right);
|
||||
public bool Button4 => Held(Keys.RightControl) || Held(Keys.LeftControl);
|
||||
public bool Button8 => Held(Keys.M);
|
||||
|
||||
public bool UpClicked => Clicked(Keys.Up);
|
||||
public bool DownClicked => Clicked(Keys.Down);
|
||||
public bool Button1Clicked => Clicked(Keys.Space);
|
||||
public bool Button2Clicked => Clicked(Keys.Escape);
|
||||
public bool Button3Clicked => Clicked(Keys.Enter);
|
||||
public bool Button5Clicked => Clicked(Keys.D1) || Clicked(Keys.NumPad1);
|
||||
public bool Button6Clicked => Clicked(Keys.D2) || Clicked(Keys.NumPad2);
|
||||
public bool Button7Clicked => Clicked(Keys.D3) || Clicked(Keys.NumPad3);
|
||||
public bool PauseClicked => Clicked(Keys.Pause);
|
||||
|
||||
public KeyboardState Current => _cur;
|
||||
public KeyboardState Previous => _prev;
|
||||
}
|
||||
Reference in New Issue
Block a user