Функции также могут использоваться внутри условий. Их можно либо проверять как логические значения (возврат true
или false
), либо через возврат определенного значения (числа/строки).
Вот несколько примеров, демонстрирующих, как функции могут использоваться внутри условий.
place_meeting()
Функция place_meeting()
может использоваться для проверки наличия столкновений между экземпляром, выполняющим код, и указанным объектом/экземпляром в позиции. Например,
//код внутри obj_player:
place_meeting(x, y, obj_wall);
Эта функция вернет true
, если obj_wall
сталкивается с obj_player
в позиции последнего. Таким образом, чтобы проверить наличие коллизий и выполнить некоторый код, надо поставить эту функцию в условие:
//obj_player событие "Step":
if (place_meeting(x, y, obj_wall)){
speed = 0;
}
Когда происходит столкновение между obj_wall
и obj_player
, он устанавливает speed
до 0.
instance_exists()
Функция instance_exists()
возвращает true
, если экземпляр указанного объекта присутствует внутри комнаты.
//Событие "Step":
if (instance_exists(obj_player)){
score += 1;
}
Вышеприведенный код проверяет, существует ли экземпляр obj_player
в комнате, и если это истина то, добавляет 1 к score
.
floor()
Функция floor()
заполняет число, указанное в его круглых скобках, и возвращает результат. Например, 4.94 станет 4, так же 1.13 станет 1 и так далее.
if (floor(image_index)==2){
image_index = 10;
}
image_index
хранит индекс суб-изображения, на котором в данный момент находится спрайт. Суб-изображения находятся в целых числах, но переменная image_index
- нет. Поэтому, прежде чем проверять, какой суб-образ включен, вам нужно заполнить переменную.