Переменные

Объяснение

Переменные - это контейнеры, содержащие некоторые значения/информацию. У них есть имя. Например, переменная с именем player_health может содержать 100, или переменная с именем player_name может содержать имя игрока («Питер», «Линдси» и т. д.). Зависит только от вас, что вы хотите назвать переменными и, что вы хотите хранить внутри них.

Переменная в GML может хранить:

  1. Численные значения – 100, 45.534, -42.2
  2. Строковые значения – "Учитель", "Питер"
  3. Логические значения – true или false

Примеры

Инициализация:

price = 50;

Здесь мы инициализировали переменную с именем price, которая содержит 20 в качестве значения. Если переменная уже была инициализирована ранее, то эта будет изменять ее значение до 20.

Примечание: в GML не обязательно помещать точку с запятой (;) после каждого утверждения. Поэтому не стесняйтесь пропустить её и сосредоточиться на главном коде.

Присвоения значения

price = 4 * 5;
price = 40 / 2;

Увеличение значения

price += 20;

Уменьшение значения

price -= 20;

Умножение или деление значения

price *= 2;
price /= 2;

Использование

Также вы можете использовать переменные в математических выражениях…

a = 4;
b = 5;
c = a + b;

Здесь c будет хранить 9 из-за выражения a + b (что означает, что 4 + 5 как a равно 4, а b равно 5).

Различные типы переменных

Локальные переменные

Эти переменные инициализируются ключевым словом var. Они сбрасываются, когда событие было инициализировано в конце. Они могут использоваться только внутри события, если только не инициализированы снова.

var price = 2;

Этот код инициализирует локальную переменную price. Предположим, что событие, в котором находился этот код, было событием Step; то переменная может использоваться только в событии Step. Если вы попытаетесь использовать её без инициализации в другом событии, то она вернет ошибку, поскольку она там не существует.

Переменные экземпляры

Это обычные переменные, которые инициализируются путем присвоения значения.

price = 20;

Доступ к этим переменным возможен во всех событиях объекта/экземпляра, после того, как они был инициализированы.

Глобальные переменные

Это переменные, к которым могут получить доступ все объекты в вашей игре - отсюда и название «global». Существует два способа создания таких переменных:

Инициализация с помощью ключевого слова globalvar

globalvar price;
price = 2;

Как только переменная была инициализирована через globalvar, она может использоваться любым экземпляром, присутствующим в комнате.

Использование с global.prefix

global.price = 2;

Таким образом, вам не нужно инициализировать переменную с помощью globalvar, но вы должны использовать global.prefix каждый раз, когда вы хотите использовать эту переменную.

Встроенные переменные

Есть также некоторые встроенные переменные, которые означают что-то особенное в GameMaker. Вот несколько примеров:

Встроенные переменные экземпляра

Это встроенные переменные, которые уникальны для каждого экземпляра. Они также могут быть известны как свойства экземпляра. Вот несколько важных примеров:

x: горизонтальное расположение экземпляра внутри комнаты (в пикселях)
y: вертикальное расположение экземпляра внутри комнаты (в пикселях)
speed: скорость экземпляра (в пикселях на шаг)
direction: направление, в котором экземпляр перемещается (в градусах), по умолчанию: 0
hspeed: горизонтальная скорость (в пикселях/шаг)
vspeed: вертикальная скорость (в пикселях / шаг)
image_angle: вращение спрайта (в градусах), по умолчанию: 0
image_xscale: горизонтальное масштабирование спрайта, по умолчанию: 1
image_yscale: вертикальное масштабирование спрайта, по умолчанию: 1
image_index: суб-изображения спрайта, который отображает экземпляр
image_speed: скорость, с которой спрайт меняет свои суб-изображения
sprite_index: спрайт, используемый экземпляром

Вы можете изменять или использовать эти переменные так же, как обычные.

//изменить местоположение на 200, 150
x = 200;
y = 150;
//сделать спрайт в 2 раза больше
image_xscale = 2;
image_yscale = 2;
//вращение спрайта на 180 градусов (половину)
image_angle = 180;

Текст, который появляется после //, является комментарием. Это не влияет на код; он там, чтобы вы могли объяснить, что делает ваш код, или писать важные вещи, которые вы хотели бы запомнить, глядя на ваш код. Вы также можете написать многострочные комментарии - просто запустите их с /* и закончите с помощью */.

Встроенные глобальные переменные

Эти встроенные переменные, которые являются глобальными для каждого экземпляра.

Вот несколько примеров:

room_speed: количество шагов, выполняемых комнатой за одну секунду, по умолчанию: 30
score: счет в вашей игре, может хранить любое числовое значение, хотя
health: здоровье вашего игрока, тоже может хранить любое числовое значение
lives: количество жизней, может также хранить любое числовое значение

Вот список всех встроенных переменных в GameMaker