Dev Update #7 - Input


Summary

I have worked on some more input improvements. The previous iteration was a good start but it was a little bit to overloaded and complex. 

I focused on abstracting input devices so that as a developer you don't have to worry from what type of device the input is coming from. Right now this abstraction works for mouse, keyboard, and gamepad.

For example, you can create actions (like player jump) and tell the action to listen for the "Space" key, the "Left" mouse button, and the "A" button on a gamepad. Then the action reports an accumulated state for all the input types it listens for.

Furthermore axis can be used as buttons and any 2 buttons can be combined to an axis. 

Buttons have 4 states:

  • Up
  • Down
  • Pressed (1 Frame)
  • Released (1 Frame)

Axis have a value range between -1 and 1 or 0 and 1, depending on the axis. The left joystick horizontal axis reports values between -1 and 1, while the right trigger reports values between 0 and 1.

With this system any button also reports axis values (0 to 1 value range) and every axis also reports the 4 states of a button.

Changelog

  • Input System Overhaul
  • Input Device Abstraction
  • Input Action System
  • Input Device Detection (what device was used last)
  • Axis as buttons and buttons as axis
  • Mouse Cursor can be controlled with gamepads as well
  • Example Scene Input Improvements
  • Example Scene Gamepad Controls 
  • Various fixes & improvements

Get Shape Engine

Download NowName your own price

Leave a comment

Log in with itch.io to leave a comment.