Skip to content

Release v7.0.0 - #61

Merged
mikebarkmin merged 1 commit into
mainfrom
changeset
Oct 26, 2026
Merged

mikebarkmin merged 1 commit into
mainfrom
changeset

Conversation

@github-actions

Copy link
Copy Markdown

Add the scratch-gamepad extension: controller support for up to four gamepads. Gamepad asks
anywhere for buttons, sticks (y up, as on the stage, with a dead zone), triggers and connections;
stages and sprites implementing GamepadListener are told about button presses, releases and
controllers connecting, at the same point of the tick as key events. Buttons are named in Xbox
positions (A, B, X, Y); controllers without a known layout are skipped and there is no rumble.

Smooth pixel art scales the window's letterbox to fit, like its camera zoom, instead of whole
numbers: with Window.useSmoothPixelArt() the stage fills the window at any size, while plain
usePixelArt() keeps stepping whole pixels.

Scratch for Java no longer runs on Processing. It draws with its own renderer on LWJGL (OpenGL 3.3, 4.1 on macOS), plays sound through OpenAL and needs no java.desktop. run() is called exactly 60 times per second of game time on every computer, and what a program sees (collisions, colour sensing, text layout) no longer depends on the graphics card or the screen.

The extensions are jars of their own: scratch-tiled, scratch-save, scratch-recorder and scratch-drawing, with short packages (org.openpatch.scratch.tiled, …). Camera, shaders, sound, pixels and sorting are part of org.openpatch.scratch. The -all jar still contains everything, and a public extension API lets others write extensions.

The API was cleaned up for learners, and programs written for 6.x need changes: time is in seconds everywhere (say("Hi", 2), waitSeconds(0.5), timer.every(0.5)), animations and nine-slicing are on every sprite (AnimatedSprite and UISprite are gone), createClone() replaces clone(), layers replace the UI flags, Color cannot be changed, the colour effect and the tint are separate, and shaders have a new, shorter format. The page "Moving from 6.x to 7.0" lists every change, and scripts/migrate-7.py makes the mechanical ones.

BlueJ is no longer supported; Scratch for Java Studio is the IDE.

Compatibility artifacts and catalogs are prepared for 7.0.0. Before merging, review the browser policy and synchronize openpatch/online-ide from this release branch:

scripts/sync-online-ide.sh /path/to/online-ide

The script also verifies the checkout. Commit and push the browser updates in online-ide and run its browser compatibility tests (npm run test:browser) before merging this PR. RELEASING.md has the full cross-repository runbook.

@mikebarkmin
mikebarkmin merged commit 0189654 into main Oct 26, 2026
@github-actions
github-actions Bot deleted the changeset branch October 27, 2026 00:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant