(Redirected from Hidden Features (3.0))

This article or section documents the current version of Scratch (version 3.0). For this article in Scratch 2.0, see Hidden Features (2.0). For this article in Scratch 1.4, see Hidden Features (1.4).

Scratch 3.0 has multiple "hidden" features, many of which can be accessed through use of the ⇧ Shift key.

Bitmap Paint Editor

Color Replace

Holding the ⇧ Shift key while filling in a color in the bitmap editor will cause all pixels of that color to be replaced with the new one, regardless of whether they are connected or not. This feature only affects pixels which are the exact same hue, saturation, and lightness as the clicked pixel. This can be useful for replacing many pixels of the same color at once, rather than manually filling in each separate section.

Vector Paint Editor

Precise Movement

Holding the ⇧ Shift key while dragging a shape in the vector paint editor will cause it to snap to 45° angle lines relative to the initial center of the shape. This can be useful for keeping a shape in the same location horizontally or vertically, or for creating shapes which have a precisely 45° angle between them. In earlier versions of Scratch 3.0, this would instead drag a duplicate of the selected shape.[citation needed]

Precise Rotation

Holding the ⇧ Shift key while rotating a shape in the vector paint editor will cause it to snap to 45° angles relative to the original rotation of the shape. This can be useful for precisely rotating objects.

Free Sizing

This is the opposite of the other features. Sizing and holding ⇧ Shift will turn on freesize mode, where anyone can resize a shape with the ratio unlocked. Instead of being precise, it is being the opposite.

Code Editor

Reporters in Boolean Inputs

Two reporters in Scratch 3.0 can be placed into true/false boolean inputs: Item () of () and Item Number of () in (). This is not a hardcoded feature, but rather the result of a coding quirk: These two blocks have their output type set to a null value instead of String.[1]

If these are placed into boolean inputs, they will return whether the value is truthy or falsy. Therefore, the Item Number of () in () block is functionally equivalent to the () Contains ()? block in this state. The Item () of () block is a little more practical, allowing for makeshift "boolean variables."

Here is an example of this quirk in use:

ask [Which item of the list do you want to determine the value of?] and wait
if (item (answer) of [List v]) then
say [That value is truthy.]
say [That value is falsy.]


See Also

Cookies help us deliver our services. By using our services, you agree to our use of cookies.