Ctrl is a programmer-oriented wrapper for Stride's native input system. The goal is to make grabbing player inputs at runtime more standardized and configurable, and to allow easy rebinding of controls.
- Basic binding controls for buttons and axes
- Advanced mouse controls and utilities
- Easy runtime rebinding
- Savable and loadable controller binding layouts
The most configurable way to utilize Ctrl is by implementing the PlayerActionSet
class and having PlayerAction
fields to be read from.
public class InputController : PlayerActionSet
{
private readonly TwoAxisPlayerAction exampleAxis;
public TwoPlayerAxisAction => ExampleAxis;
private readonly PlayerAction exampleButton;
public PlayerAction => ExampleButton;
public InputController() : base()
{
// Setup the axis action
// Note: each PlayerAction must be assigned a unique name
exampleAxis = CreateTwoAxisPlayerAction("Axis");
exampleAxis.AddBinding(MouseAxis.X, MouseAxis.Y);
// Setup the button action
exampleAxis = CreatePlayerAction("Button");
exampleAxis.AddBinding(Keys.Space);
}
}
These player actions can now be read for input values.
var controller = new InputController();
bool isPressed = controller.ExampleButton.IsPressed;
Vector2 axisInput = controller.ExampleAxis.Vector;
Yes, the name is a pun.