Найти в Дзене
Игровой движок Godot engine

№150. Expression.

Приветствую друзья. В этой статье коснемся такой интересной штуки как Expression. По нашему это будет что-то типа «Выражение». При помощи выражений мы можем исполнять необходимый нам код по запросу.
Проще всего это представить на примере консоли. Во многих играх есть консоль в которую вы вводите различные команды, тем самым воздеиствуя на различные параметры. Собственно попробую обьяснить весь смысл на импровизированной консоли.
Закидываем в проект LineEdit и TextEdit. Первый используется для ввода команд, а второй для вывода результата. Если вас не устраивает TextEdit, то вы можете использовать что-то другое. Подключаем на корневую ноду скрипт, подключаем сигнал text_entered к LineEdit и начинаем писать код. Но, давайте забежим немного вперед и напишем функцию которая будет манипулировать данными нашей переменной Life. Ничего сверх сложного. Проверяем есть ли в функции аргумент. Если да, то прибавляем его к переменной Life.
А если аргумента нет — то просто выводим текущее значение пер

Приветствую друзья.

В этой статье коснемся такой интересной штуки как Expression. По нашему это будет что-то типа «Выражение».

При помощи выражений мы можем исполнять необходимый нам код по запросу.
Проще всего это представить на примере консоли. Во многих играх есть консоль в которую вы вводите различные команды, тем самым воздеиствуя на различные параметры.

Собственно попробую обьяснить весь смысл на импровизированной консоли.
Закидываем в проект LineEdit и TextEdit. Первый используется для ввода команд, а второй для вывода результата. Если вас не устраивает TextEdit, то вы можете использовать что-то другое.

Подключаем на корневую ноду скрипт, подключаем сигнал text_entered к LineEdit и начинаем писать код.

Но, давайте забежим немного вперед и напишем функцию которая будет манипулировать данными нашей переменной Life.

-2

Ничего сверх сложного. Проверяем есть ли в функции аргумент. Если да, то прибавляем его к переменной Life.
А если аргумента нет — то просто выводим текущее значение переменной Life.

Возвращаемся в функцию приема выражения.

-3

Тут я переименовал аргумент в new_text. Вы можете назвать по своему , либо вообще оставить как было.

Далее создаем новый Expression.
Парсим его, и исполняем.

Давайте запустим приложение и напишем в строку команду up() и команду up(3):

-4

Как видно из гифки , наша функция up успешно вызвалась.
И если бы это была допустим наша игра, то с помощью нашей консоли мы бы смогли увеличить количество жизней нашему персонажу.

Надеюсь вы уловили общий смысл.
Добавлю, что помимо вызова своих функций мы можем вызывать некоторые «родные» , типа randf, cos и т.д. А так же исполнять арифметические деиствия:

-5

Проверить на ошибки можно при помощи get_error_text() и has_execute_failed().

Надеюсь вам был полезен этот материал.
Подписывайтесь на канал,
вступайте в группу в ВК, и не забывайте что у нас есть дискорд сервер.
Удачи в изучении годо !

#godot #gdscript #игровой движок #программирование #уроки