Add configurable origin point for sprite positioning and rotation #17
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.
Sprites previously had a fixed center origin for positioning and rotation. This adds support for 9 predefined origin positions (corners, edges, center) plus custom offsets.
Changes
Originenum with TOP_LEFT, TOP_CENTER, TOP_RIGHT, CENTER_LEFT, CENTER, CENTER_RIGHT, BOTTOM_LEFT, BOTTOM_CENTER, BOTTOM_RIGHT, CUSTOMsetOrigin(Origin)- predefined positionssetOrigin(double x, double y)- custom offset from center (positive x = right, positive y = down)getOrigin(),getOriginX(),getOriginY()- accessorsImage.draw()- applies origin offset after rotation transformSprite.getHitbox()- adjusts collision bounds for origin offsetStamp- pen stamping respects sprite originOriginTest.java- 3 tests for Origin enum validationSpriteOriginTest.java- 8 tests for Sprite origin API verificationExample
Default remains
Origin.CENTERfor backward compatibility.Testing
src/examples/java/reference/Original prompt
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.