BEST GameSoul Опубликовано 6 сентября, 2021 BEST Поделиться Опубликовано 6 сентября, 2021 (изменено) Всем привет! Этот урок является моим переводом одного из разделов мануала Construct, с добавлением собственных/чужих комментариев. Если заметите какие-то ошибки в переводе, дайте мне знать. Вот ссылка на оригинал. В Construct, выражения используются для вычислений или получения информации от объектов, например позицию спрайта по оси X. Вы будете часто сталкиваться с ними в процессе разработки ваших проектов, поэтому в данном уроке мы обсудим в общих чертах как их применять. Все выражения вводятся в диалоговом окне параметров при добавлении или редактировании условия или действия, имеющего параметры: Во время ввода символов в строке выражения показываются в виде подсказки. Вы можете написать его целиком вручную, либо выбрать из списка и сделать автозаполнение: При редактировании условия или действия вы можете вызвать словарь выражений, нажав на ссылку Find Expressions внизу окна. Он содержит все системные выражения и выражения всех объектов, доступных в вашем проекте: Ниже приведены некоторые примеры выражений, от простого числа до сложных вычислений: 0 random(360) Sprite.X (Player1.X + Player2.X) / 2 Sprite.8Direction.Speed Sprite.X + cos(Sprite.Angle) * Sprite.Speed * dt Выражения объектов У объектов есть собственные выражения для получения информации о них. Они записываются в виде: имя объекта, точка, имя выражения (без пробелов). Например: Sprite.X - возвращает позицию объекта Sprite по оси X, а Sprite.Width - возвращает ширину объекта Sprite. Если в условий/действии объекта Player, вы получаете выражения этого же объекта Player, то вместо названия объекта вы можете использовать Self. Выражение Self работает как ссылка на текущий объект. Например, в действии для объекта Player, Self.X будет ссылаться на выражение Player.X. Вы можете добавить индекс объекта в выражение, чтобы получить значение выражения из разных копий объекта. Например, Monster(0).Angle вернет угол первой копии объекта Monster, а Monster(1).Angle вернет угол второй копии. Подробнее в мануале см. Index IDs (IIDs) в копиях объектов. Вы также можете прописать другое выражение в качестве индекса. Отрицательные числа начинаются с противоположного конца, поэтому Monster(-1).Angle вернет угол последнего объекта Monster. Выражения поведений Все выражения поведений (если они есть) присвоенных к объекту, тоже пишутся через точку и без пробелов (в виде: имя объекта, имя поведения, имя выражения). Например: Player.8Direction.Speed - возвращает скорость поведения 8Direction у объекта Player: Системные выражения Встроенные системные выражения вы можете посмотреть здесь. К ним относятся некоторые основные математические функции, такие как sqrt (квадратный корень). Числа и текст (строки) в выражениях Числа вводятся просто как цифры с необязательной дробной частью, разделенной точкой, напр: 5, -1.2. Текст в выражениях должен быть окружён двойными кавычками, например "Привет!". Двойные кавычки это не часть текста, поэтому выражение "Привет" будет показано как Привет, без всяких двойных кавычек. Чтобы использовать двойные кавычки в тексте, необходимо поставить две двойных кавычки рядом друг с другом (""), напр: "Он сказал ""Привет"" мне" вернет Он сказал "привет" мне. Вы можете использовать & (амперсанд) для построения строки из текста и цифр, напр: "Ваш счет: " & счет. Чтобы добавить перенос строки (разрыв строки в строку), используйте системные выражение newline, напр: "Привет" & newline & "мир". Операторы в выражениях В выражениях вы можете использовать следующие операторы: + (прибавление) - (вычитание) * (умножение) / (деление) % (модуль, остаток от деления) ^ (возведение в степень, напр: 5 ^ 2 = 25) & (построение строки, напр: "Ваш счет: " & счет) Также есть операторы сравнения =, <>, <, <=, >, >= для сравнивания значений (напр: счет < 10). Они возвращают 1, если сравнение истинно, или 0 если ложно. При использовании с числами, & (амперсанд) также может быть использован как логическое "И", а | (вертикальный слэш) как логическое "ИЛИ". Если одна из сторон выражения является строкой, & (амперсанд) вместо этого делает конкатенацию строк. Эти символы полезны в сочетании с операторами сравнения, напр: счет < 0 | здоровье < 0, что вернет 1 если любое из условий истинно, иначе 0 если ложно. ?: это тернарный оператор, который позволяет проверять условия в выражениях. Он особенно полезен при использовании с операторами сравнения и логическими операторами. Он принимает форму условие ? результат_если_истинна : результат_если_ложно. Условие считается истинным, если оно не равно нулю, и ложно если равно нулю. Например: здоровье < 0 | счёт < 0 ? "Игра окончена!" : "Продолжить!". Распространенной ошибкой является запись выражений сравнения, таких как значение = 1 | 2 с намерением сопоставить значение к 1 или 2. Однако это так не работает, поскольку написанное выражение оценивается как (значение = 1) | 2, что всегда возвращает истину. Аналогично выражение значение = (1 | 2) не будет работать как 1 | 2, поэтому оно только проверяет, истинно ли значение. Правильный способ проверить это использовать значение = 1 | значение = 2. Изменено 7 сентября, 2021 пользователем GameSoul 3 1 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Kanske Опубликовано 7 сентября, 2021 Поделиться Опубликовано 7 сентября, 2021 (изменено) Спойлер (fullHp.Width * ((var2 * 100) / var1)) / 100 (fullHp.Width * (((var2 - enemy.dmg) * 100) / var1)) / 100 (fullHp.Width * (((var2 - (ceil(random((enemy.dmg - 11), (enemy.dmg + 10))))) * 100) / var1)) / 100 Изменено 8 сентября, 2021 пользователем Sailer 2 Цитата Есть телега? Залетай в отвязный чат разработчиков на Construct! Ссылка на комментарий Поделиться на другие сайты Поделиться
Sailer Опубликовано 8 сентября, 2021 Поделиться Опубликовано 8 сентября, 2021 (изменено) @Kanske чтобы вставить картинку на полный экран, без миниатюры, просто копируешь ссылку на картинку из вложения (открываешь её и копируешь), а потом вставляешь через кнопку просто со сторонних хостингов картинки могут удалить! поэтому важные пикчи в уроках надо сохранять только через вложения я переделал Изменено 8 сентября, 2021 пользователем Sailer 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Aventiy Опубликовано 22 сентября, 2021 Поделиться Опубликовано 22 сентября, 2021 @Kanske казнить нельзя помиловать ) Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.