Выражения в Construct 2

4

Tagged

Contributors

Stats

52,756 visits, 58,751 views

Tools

License

This tutorial is licensed under CC BY 4.0. Please refer to the license text if you wish to reuse, share or remix the content contained within this tutorial.

Published on 17 May, 2017. Last updated 25 Feb, 2019

Операторы

В выражениях доступны следующие операторы:

+ (прибавление)

- (вычитание)

[*] (умножение)

/ (деление)

% (по модулю, остаток от деления)

^ (Возведение в степень, к примеру, 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 получает позицию по Х последнего спрайта.

Всё это может быть применено к любому объекту, а не только к спрайтам.

  • 1 Comments

  • Order by
Want to leave a comment? Login or Register an account!
  • Нужна помощь, пытаюсь сделать в игру баланс и вычетание из него. Вычитаемое число непостоянное, записано кодом "round(random(70,190))"

    Данное рандомное число вписывается в "Текст"

    Не могу понять как записать выражение "Баланс" - "Текст"