(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.] else say [That value is falsy.] end