Условия и Функции

Объяснение

Функции также могут использоваться внутри условий. Их можно либо проверять как логические значения (возврат 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 - нет. Поэтому, прежде чем проверять, какой суб-образ включен, вам нужно заполнить переменную.