Wondering if I am on the right track for future proofing input controls so that a user can set custom keys or use a gamepad.
Right now I have two enums:
enum Input
{
Up,
Down,
Action
}
enum InputType
{
Press,
Release,
Hold
}
Then in my main game1.cs update loop I have a call to my function control()
void Control()
{
cState = pState; // current/previous keyboard state
cState = Keyboard.GetState();
Input input;
InputType type;
if (cState.IsKeyDown(Keys.W)) // Plan is to change Keys.W somehow later
{
input = Input.Up;
type = InputType.Hold;
}
/* Similar functions with pState and cState to determine hold, press or release. */
ScreenManager.Control(input, type); // Passes it through to screen manager and current screen updates/controls
}
So later in my screens I can just make a check for Input.Up && InputType.Press
to just for example move a menu item up once.
Does this seem like a good way to go, say I want to change up from W key to Up key or anything else, I only change once in my code?
Could I easily adapt this to a user in a settings menu inputting their own key?