Fix sub-pixel jitter after tile separation#7253
Open
danitpeck wants to merge 1 commit intophaserjs:masterfrom
Open
Fix sub-pixel jitter after tile separation#7253danitpeck wants to merge 1 commit intophaserjs:masterfrom
danitpeck wants to merge 1 commit intophaserjs:masterfrom
Conversation
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
Bugbot Free Tier Details
Your team is on the Bugbot Free tier. On this plan, Bugbot will review limited PRs each billing cycle for each member of your team.
To receive Bugbot reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.
Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable autofix in the Cursor dashboard.
1773d0c to
d01636b
Compare
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.
Please do not update the README or Change Log, we will do this when we merge your PR.
This PR (delete as applicable)
Describe the changes below:
Fixes #7252
ProcessTileSeparationX/Y can leave body.position at fractional values after subtracting the overlap, like 63.9997 instead of 64.
Tiles are at whole pixel coords so this shouldn't happen, but float math is gonna float math. In pixelArt games it shows up as sprites jittering 1px back and forth while just standing on a tile.
The fix: after the subtraction, if the result is within 0.01 of a whole number, snap it. Catches the float drift without messing up bodies that are supposed to be fractional (scaled sprites with non-integer dimensions, etc).
Note
Low Risk
Small, localized change to tile collision resolution; main risk is edge-case behavior changes for bodies that rely on tiny fractional positions near pixel boundaries.
Overview
Fixes sub-pixel jitter after Arcade Physics tile separation by snapping
body.position.x/yto the nearest integer when the post-separation value is very close to a whole pixel.The new rounding is tolerance-based (
< 0.01) so intentionally fractional positions (e.g., from scaled sprites / non-integer body sizes) are preserved, and the rest of the separation/bounce logic remains unchanged.Written by Cursor Bugbot for commit d01636b. This will update automatically on new commits. Configure here.