# Variables
A common instruction is saving a value in a variable.
my_first_variable = 1000
The =
operator stores the value 1000
in the variable named my_first_variable
. You can read it as "set
my_first_variable to 1000."
(Note: =
is for assigning a value. If you want to check if two values are equal,
use ==
, which means "is equal to?")
my_second_variable = my_first_variable + 1 // my_second_variable will store 1001
Your character already has a a lot of variables, (opens new window) which you can read or change.
// update.gml
hsp = 3 // Sets your character's horizontal speed every frame
y = 800 // Sets your character's vertical position every frame
You can technically name variables almost anything. Use _
as a space like_this
. The name can contain numbers, but not as
the first character.
Using helpful names is valuable. Future-you won't remember what you're thinking now.
# Name collisions
When var
is before a variable, it makes that variable 'local.'
var my_local_variable = 1000
You can only access local variables (opens new window) from the current "scope," which makes it much easier to stay organized and avoid unexpected side effects.
Being local to the current scope means only being accessible within the current block of code. If you create the variable within an if or for structure, it won't exist outside that block. Local variables are not accessible outside the current file.
If you don't need to access the v ariable on later frames, it probably should be a var
variable. You
should be using var
often to stay organized.
Different instances have their own variables, which you can access
with <instance id>.<variable name>
, e.g. other_player.x
.
Advanced: If you need to set a var
variable in a block and use it out of the block, you can declare the variable
before it.
var message
if is_ready {
message = "Ready!"
}
else {
message = "Not ready!"
}
print(message)