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

Favourite 260 favourites
Tutorial written by pearsonlandsOriginally published on 14th, November 2011 - 16 revisions

Translation Team:

6 total revisions

Операторы

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

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

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

Unlock your full gamedev potential

Upgrade to the Personal Edition of Construct 2, it has way more features and won't holding back from making money and using your full creativity like the free edition does. It's a one off payment and all Construct 2 editor updates are free for life!

View deals

Plus, it's got a lot of additional features that will help you save time and make more impressive games!

Congratulations on finishing this tutorial!

Did you learn a lot from it? Share it now with your friends!

Comments

16
Yurcheg 2,579 rep

Большое Спасибо.
Даёшь больше материалов на русском!!!

Saturday, May 25, 2013 at 5:09:51 PM

Leave a comment

Everyone is welcome to leave their thoughts! Register a new account or login.