Операторы
В выражениях доступны следующие операторы:
+ (прибавление)
- (вычитание)
[*] (умножение)
/ (деление)
% (по модулю, остаток от деления)
^ (Возведение в степень, к примеру, 5 ^ 2 = 25)
& (Сборка строки, например, "Ваш счет:" & Score)
Также есть операторы сравнения =, <>, <, <=,>,> = для сравнивания значений. Они возвращают 1, если сравнение true (истинно), или 0, если false (ложно).
& также подразумевается как логическое "И" и "|" является логическим оператором ИЛИ. Они полезны в сочетании с операторами сравнивания, например, score <0 | health<0, что также возвращает 1, если истинно и 0, если ложно.
?: это тернарный оператор, который позволяет проверить условия в выражениях. Это особенно полезно при использовании операторов сравнивания и логических операторов. Он принимает форму - состояние ? результат_если_истинна : результат_если_ложно
например здоровье <0 | счёт <0? "Игра окончена!" : "Продолжить!".
(condition ? result_if_true : result_if_false e.g. health < 0 | score < 0 ? "Game over!" : "Keep going!".)
Условие считается истинным, если оно не равно нулю, и ложно, если оно равно нулю.
Строки(текст)
Текст в программировании известный как строки, и Construct 2 тоже иногда использует эти именования. Текст в выражениях должен быть окружён двойными кавычками, например, "Hello!".
Двойные кавычки - это не часть текста, поэтому, выражение "Hello" будет показанно как Hello, без всяких двойных кавычек. Чтобы использовать двойные кавычки в тексте, необходимо поставить две двойных кавычки рядом друг с другом (""), например, "Он сказал ""Привет""мне" вернёт - Он сказал "привет" мне.
Вы можете использовать & для создания строки из текста и цифр, например, "Ваша оценка:"& Score.
Стандартные математические выражения
Полный список выражений можно найти в самой Construct 2: дважды щелкните на объект System в плавающей панели выражения, когда Вы печатаете там. Однако некоторые из них перечислены здесь.
sin (синус угла в градусах)
cos (косинус угла в градусах)
tan (тангенс угла в градусах)
asin (арксинус, возвращает градусы)
acos (арккосинус, возвращает градусы)
atan (арктангенс, возвращает градусы)
sqrt (квадратный корень)
abs (абсолютное значение)
exp (экспонента, е ^ х)
ln (логарифм по основанию е)
log10 (логарифм по основанию 10)
Не стоит забывать, что Construct 2 всегда использует градусы, а не радианы. Если вам нужен угол, то в Construct 2 это будет в градусах.
Преобразование выражений
int(x) - преобразовывает х в целое значение
float(x) - преобразовывает х в число с плавающей запятой
str(x) - преобразовывает х в строку
Не забывайте использовать & для создания строк, т.е. "Ваш счёт: " & score вернёт "Ваш счёт: 10" в виде строки, если score=10.
Другие выражения
Angle(x1, y1, x2, y2) - Вернёт угол в градусах между (x1, y1) и (x2, y2), используя atan2(y2 - y1, x2 - x1).
Ceil(число) - Округление числа вверх, например, ceil(6.1) возвращает 7.
Distance(x1, y1, x2, y2) - Вернёт расстояние между (x1, y1) и (x2, y2).
dt - Delta-time. Смотри Delta-time and framerate independence.
Floor(число) - Округление числа вниз floor(6.7) вернёт 6.
fps - Частота кадров за секунду.
len(x) - Вернёт длину строки x
Lerp(a, b, x) - Линейная интерполяция: высчитываетaет а + x(b - a), или линейно интерполируя a в пункт b на x%. То есть, lerp(a, b, 0.25) даст 25% от значения пути А к В.
LoopIndex - Текущий (top-level) индекс цикла.
LoopIndex("имя") - Индекс цикла от цикла имя
ObjectCount - Общее количество экземпляров объекта в игре.
Max(a, b [,c,...]) - Даст максимальное из заданных значений. Вы можете задать любое количество значений
Min(a, b [,c,...]) - Даст минимальное из заданных значений. Вы можете задать любое количество значений
Newline - разбиение текстовой строки "Hello" & newline & "World"
Random(N) - Вернёт случайное число от 0 до N, не включая N. В результат входят и дробные, так что random(3) вполне может вернуть 2.5. Используйте floor(random(n)) для генерации целого случайного числа, например floor(random(3))* вернёт или 1, или 2, или 0. Выражение Random(A, B) может быть использовано для получения случайного числа между А и В.
Round(value) - Округляет число к ближайшему целому Round(6.8) даст 7
Scrollx, Scrolly - Текущая позиция скролинга
Timescale - Временная шкала. Смотри Delta-time and framerate independence.
Time - Время в секундах от начала игры.
TickCount - Количество тиков? от начала игры.
Не забывайте проверять выражения в панели Construct 2 для получения более полного списка.
Полезные выражения в других объектах
Mouse и Touch позволяют передавать параметры слоя для X и Y выражений. Это очень полезно, масштабировании и повороте слоёв.
Например Mouse.X ("Layer 1") возвращает X-позицию мыши на слое 1, чтобы высчитать параллакс этого же слоя, а так же масштаб и угол. Если вы используете только Mouse.X, то он не примет во внимание параллакс, масштаб или угол, так что результат может быть непредсказуемым.
Объект индексирования в выражениях
Добавив 0 индекс, вы получите нулевую по счёту копию объекта из всех существующих.
Например Sprite(0).X получает позицию по Х первой копии объекта, и Sprite(1).X получает положение по Х второй копии. Также, можно передавать и другие выражения для индекса. Отрицательные числа начинаются с противоположного конца, поэтому Sprite(-1).X получает позицию по Х последнего спрайта.
Всё это может быть применено к любому объекту, а не только к спрайтам.