Expressions

Game Maker 8

Expressions

Expressions can be real numbers (e.g. 3.4), hexadecimal numbers, starting with a $ sign (e.g. $00FFAA), strings between single or double quotes (e.g. 'hello' or “hello”) or more complicated expressions. (Note that strings can run over multiple lines!) For expressions, the following binary operators exist (in order of priority):
  • && || ^^: combine Boolean values (&& = and, || = or, ^^ = xor)
  • < <= == != > >=: comparisons, result in true (1) or false (0)
  • | & ^: bitwise operators (| = bitwise or, & = bitwise and, ^ = bitwise xor)
  • << >>: bitwise operators (<< = shift left, > > = shift right)
  • + -: addition, subtraction
  • * / div mod: multiplication, division, integer division, and modulo

Note that value of x div y is the value of x/y rounded in the direction of zero to the nearest integer. The mod operator returns the remainder obtained by dividing its operands. In other words, x mod y = x - (x div y) * y. Also, the following unary operators exist:

  • !: not, turns true into false and false into true
  • -: negates the next value
  • ~: negates the next value bitwise
As values you can use numbers, variables, or functions that return a value. Sub-expressions can be placed between brackets. All operators work for real values. Comparisons also work for strings and + concatenates strings. (Please note that, contrary to certain languages, both arguments to a Boolean operation are always computed, even when the first argument already determines the outcome.)

Example

Here is an example with some assignments.

{
  x = 23;
  color = $FFAA00;
  str = 'hello world';
  y += 5;
  x *= y;
  x = y << 2;
  x = 23*((2+4) / sin(y));
  str = 'hello' + " world";
  b = (x < 5) && !(x==2 || x==4);
}