# Data Types
Variables come in different types, playing by different rules.
# Booleans (True or False values)
A boolean value is true
or false
.
is_on_fire = true
or weapon_held = false
.
The not
or !
operator inverts a boolean between true and false. not true
is false
. is_toggled = not is_toggled
would switch between true and false.
You can combine booleans, described below.
# Variable Comparison
You can compare any variables for equality, which returns a boolean value.
==
means "are equal?"2 == 3
isfalse
.!=
means "are not equal?"2 != 3
istrue
. (Remember!
means the same asnot
, so!=
means 'not equal')
People sometimes compare booleans with true
or false
. That's silly. is_active == true
means the same
thing as is_active
. is_active == false
means the same as not is_active
.
Numbers have more operators, >
, >=
, <
, and <=
, described below.
if
statements use variable comparison extensively.
# Logical Operators
You can combine booleans with logical operators and
and or
.
can_use_fireball = fireball_ready == state_cat != SC_HITSTUN
bomb_should_explode = fuse_timer <= 0 or should_die
You can technically use 0
and 1
as false
and true
respectively. Don't. It makes the intention of the
code much less clear, because the reader must guess whether the value is a boolean or number. If a value is true or false, use true
and false
.
Some misconceptions. (opens new window)
# Reals (Numbers)
Most variables hold numbers, such as speed or percent or x position.
You can also compare numbers by their relative size.
>
- 'is greater than?'>=
- 'is greater than or equal to?<
- 'is less than?',<=
- 'is less than or equal to?'
Numbers can use math operators +
, -
, *
and /
.
When increasing or decreasing a variable, you can use +=
, -=
, *=
and /=
as a shortcut. x += 1
increases x 1,
the same as x = x+1
.
my_var++
or my_var--
are shorthand for my_var+=1
and my_var-=1
.
# Integers
All numbers are reals. Integers are a subset of reals with no decimal value. 1
, -100
, 4140
are integers,
while 2.5
is not.
Rivals expects some variables to be integers, such as x
and y
positions. If you ever need to convert a real to an
integer, you can
use rounding functions (opens new window)
like round
, floor
and ceil
.
GML Reals Official docs (opens new window)
# Strings (text)
Strings are text. Rivals doesn't need a lot of text processing, but they're used when using print
or displaying text
as part of a HUD.
String value are anything between quotes, either single '...'
or double "..."
.
You can add strings together with +
. "a" + "b" == "ab"
.