microstudio
microstudio copied to clipboard
fix(engine): decouple input reset from update loop
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