Add configurable origin point for sprite positioning and rotation#17
Draft
Add configurable origin point for sprite positioning and rotation#17
Conversation
Co-authored-by: mikebarkmin <2592379+mikebarkmin@users.noreply.github.com>
Co-authored-by: mikebarkmin <2592379+mikebarkmin@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Add origin setting for sprite positioning
Add configurable origin point for sprite positioning and rotation
Dec 21, 2025
Member
|
@copilot Can you add unit tests for this feature |
Co-authored-by: mikebarkmin <2592379+mikebarkmin@users.noreply.github.com>
Contributor
Author
Added comprehensive unit tests for the origin feature in commit 4c0f246. Test Coverage:
All 11 tests pass successfully. The tests verify:
Note: Since Scratch for Java is a graphics library built on Processing, full integration tests that instantiate Sprite objects require a graphical environment. These are covered by the runnable examples in |
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.
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.