microstudio icon indicating copy to clipboard operation
microstudio copied to clipboard

fix(engine): decouple input reset from update loop

Open killerdevildog opened this issue 6 months ago • 0 comments

The keyboard.press, keyboard.release, and other single-frame input objects were only being reset if the user's script contained an update() function. This created an undocumented dependency and caused inputs to fail in projects without a game loop.

Before this fix:

  • keyboard.press.SPACE would only work once, then stop responding
  • Projects needed a dummy 'update = 0' to make inputs work
  • Input reset logic was tied to update() function execution

After this fix:

  • Input state reset now occurs on every frame in tick()
  • keyboard.press works correctly regardless of update() function
  • No more need for dummy update functions as workarounds

This commit moves the input state reset logic (@updateControls) from the conditional update() block to the start of every frame in the tick() function, ensuring predictable and correct input behavior for all project structures.

Fixes #229

killerdevildog avatar Aug 03 '25 04:08 killerdevildog