In other languages

Help the wiki!

The Scratch Wiki is made by and for Scratchers. Do you want to contribute?

Learn more about joining as an editor!

See discussions in the Community Portal

Variable

This article is about Scratch variables in general. For other uses, see Variable (disambiguation).
"Value" redirects here. For the category of values, see Category:Values.
The variable reporter block.
A variable is a changeable value recorded in Scratch's memory. Variables can only hold one value at a time, unlike lists. These values can be either numbers or strings — any text. Clicking on an isolated variable in the scripts area displays a small bubble reporting the value of the variable. Unlike many other programming languages, variables must be created prior to when the project actually runs. This only results in a small amount of RAM being used to store the value for use when the project actually runs. Variables are created with the Make a variable button in the Variables palette.

Variable blocks

The Variables blocks.

There are five different blocks relating to variables:

Types

In Scratch 1.4, there are two types of variables, public (global), and private (local). In Scratch 2.0, another type was added — cloud. Cloud data variables are stored on the server, making their same values accessible by all users viewing the project.

Global Variables

By default, when a variable is created, it is a global variable. Global variables can be read and changed by any sprite, or the Stage.

Local Variables

Local, (or private/personal) variables are created the same way as global, but another option is selected in the variable creation dialog, "For this sprite only". Personal variables can only be changed by their owner, but can be read by other sprites using the () of () block. The Stage cannot have local variables.

Creating a variable

Local variables are extremely useful when you want to create a template sprite which needs to be duplicated and edited. For example, in a game where one must pop bubbles, a "bubble" sprite should be made which has personal variables like "speed" and should be programmed independently. Then it should be duplicated until there are enough bubbles. Since each bubble has an individual "speed" variable, they will not interfere with each other unlike if "speed" was a global variable.

Warning Note: Clones inherit local variables into their properties, meaning that each clone has a separate number for the local variable

Cloud Variables

Main article: Cloud Data

Cloud variables are variables that are stored on the server. When a cloud variable updates, it does so across all copies of the project open, and it also gets saved for the next time the project is opened. Cloud variables have a small cloud icon next to their names.

Use

The three different variable displays.
Variables are used whenever a value must be stored — i.e., if a project required the user to input a name and then remember that name, the name would be stored in a variable. With this, the name can be retrieved at any time; all the project has to do is check the value (which is the name).

The look of the variable can be changed in to three forms: The normal readout, the large readout, and the slider. The form of the variable can be changed by double-clicking or right-clicking it and selecting the option that is wanted, or clicking it using the grow/shrink sprite tool.

The checkbox to show/hide a variable.
It can be chosen whether to hide or show a variable on the stage by clicking the tick box in the variable panel or by right-clicking it and selecting "hide".

If the view is set to slider, right clicking on the watcher will give another option: set slider min and max. Choosing it will let the user define the range of the variable.

Variable Glitches

Variableglitch1.png
VariableGlitch2.png

You can make glitch variables by calling them things like %d (direction drop down/number insert), %s (text input), %m (variable drop down), %b (boolean), %n (number input), or %c (color input), which will look like those at the left. This is because Scratch reads the percent sign followed by certain letters as an argument. By naming a variable @greenFlag or @stop it will display a green flag or a stop sign, respectively, as seen at the right. Also, the codes @turnRight and @turnLeft create a rotate sign, right or left.

These tricks only work in Scratch 2.0.

Lists

Main article: List

A list is made of items — each item like a variable. Lists can be useful when many variables are needed or when the amount of memory that needs to be stored can not be determined by the programmer before the project is run.

See Also

External Links

  • This page was last modified on 29 August 2014, at 23:03.