fix(engine): decouple input reset from update loop#243
Open
killerdevildog wants to merge 2 commits intopmgl:masterfrom
Open
fix(engine): decouple input reset from update loop#243killerdevildog wants to merge 2 commits intopmgl:masterfrom
killerdevildog wants to merge 2 commits intopmgl:masterfrom
Conversation
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 pmgl#229
The runner.js file is generated from runner.coffee and should not be tracked in version control. This follows best practices: - Only track source files (runner.coffee) - Let build process generate compiled files (runner.js) - Reduces repository size and merge conflicts - Compiled file can be generated with: npx coffee -c runner.coffee The fix for Issue pmgl#229 remains intact in the CoffeeScript source.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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:
After this fix:
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