GDScript Book #1, консоль Godot Engine, синтаксис, области видимости.

Назад в "Основы GDScript"

Всем привет, на этом уроке мы поговорим о синтаксисе языка GDScript. Как было описано во введении,
в Godot скрипты не могут существовать отдельно от объектов. Сейчас посмотрим как это выглядит на практике.
В качестве демонстрационной сцены создадим объект "Node".
(Не смущайтесь тёмного цвета редактора. Помимо цвета у вас всё то же самое)

И поместим его в корень, назвав к примеру "root" (Подчёркнуто синим). После появления в дереве сцены какого либо объекта,
на него можно навесить скрипт, выделив нужный нам узел и нажав на данную кнопку (Обведена голубым) либо через контекстное
меню кнопка "Прикрепить скрипт".



После нажатия на которую появляется стандартный диалог создания скрипта.


В котором

"Язык" - Это язык на котором вы будете писать, а именно GDScript, NativeScript, VisualScript. Сейчас мы будем говорить именно о GDScript.


"Наследует" - Выбор типа узла от которого наследуется скрипт. А именно класс содержащий набор параметров и методов присущий конкретному узлу. В нашем случае т.к. наш объект соответствует типу "Node", то и наш скрипт будет наследовать класс "Node"


"Имя класса" - В нашем случае оно не активно, так что пропускаем.


"Шаблон" - Это то что будет изначально записано в нашем файле. На выбор есть "Empty"(То есть пустой), "По умолчанию"(Содержит стандартную функцию и комментарии что с ними делать) и "No comments"(То же самое, но без комментариев). Сейчас мы создадим пустой скрипт.


"Встроенный Скрипт" - Будет ли размещаться скрипт в папке как текстовый файл с расширением .gd или же будет встроен в сам объект.
Маленький лайфхак - Если вам будет удобнее редактировать скрипты во внешнем редакторе, то вы можете спокойно это делать, ибо файлы скриптов хранятся в папке с проектом.


"Путь" - Соответственно путь где будет создан скрипт.



После создания скрипта мы видим перед собой редактор встроенный в сам Godot и открытый в нём скрипт.


Первая строчка extends Node у нас отвечает за наследование скрипта, то есть какими методами он
будет обладать, и к какому классу он относится. Считай это та же самая строчка "Наследует" из диалога создания скрипта.



Будем считать что люди читающие данный курс, с языком GDScript вообще не знакомы и учатся ему практически с нуля, так что тут будет объясняться всё так же с нуля. Скрипты в GDScript в принципе очень простые с точки зрения написания, по этому ничего сложного в этом нет. Сейчас у нас создан скрипт который в принципе уже корректен, и если его запустить, то программа запустится, но делать ничего не будет, ибо наш скрипт хоть и существует, но ничего не делает.




Консоль


Для возможности отладки, оптимизации, нахождения ошибок да и банального мониторинга значений каких-либо
переменных в Godot присутствует консоль вывода. В интерфейсе Godot
она открывается по нажатию кнопки "Вывод" снизу



Консоль вывода - это область в которую ваш скрипт самостоятельно, или с помощью каких либо методов может писать сообщения.


Консоль это один из самых важных инструментов разработчика, ибо с её помощью можно решить почти 99% возникающих проблем, при разработке.
Однако актуальна она только на момент разработки, ибо после конечной компиляции и поступления продукта в продакшн, консоль и
остальные инструменты отладки выпиливаются из-за ненадобности.


У себя в настройках во вкладке "Output" можно поставить галочки на скрытие консоли
при завершении программы, и на открытие при запуске. Так консоль не занимает место на экране при написании кода, когда она не нужна.
И можно видеть практически весь код



Для общения с консолью в Godot вы можете посылать ей сообщения. В Godot самый примитивный метод для этого это.
метод print() Однако данный код не выполнится, и этим я вам покажу ещё одну прекрасную особенность редактора кода
в Godot, это отображение некоторых ошибок, ещё до компиляции проекта. Сюда относятся синтаксические и некоторые логические
ошибки. Краткий текст ошибки можно посмотреть снизу (Синяя обводка). То есть сюда выводится текст которым Godot сообщает нам какая именно проблема возникла.
В нашем случае проблема довольно-таки простая, мы пишем скрипт не там где ему положено быть.
Что нас подводит к тому что в Godot есть некие области в которых одни вещи писать можно, а другие нельзя.



Области видимости (Контексты)


Так же области видимости можно назвать контекстами.


Контекст - Область видимости и доступности тех или иных методов, или свойств.


Для того чтобы заставить данную функцию работать, перенесём её в событие.



Сразу скажу что Godot поддерживает и синхронные
и асинхронные методы, и для каждого асинхронного метода может быть назначен обработчик.


Асинхронные методы (или Обработчики) - это самые обычные функции которые Godot вызывает самостоятельно
при возникновении тех или иных событий. Подробнее об этом мы поговорим когда, будем рассматривать систему событий,
сейчас же вам просто стоит это запомнить чтобы не отвлекаться от сути урока.


Если мы сейчас запустим эту программу, то увидим в консоли надпись "Hello World!!!".
Что и логично, ибо это мы с вами и написали



Ну и поскольку мы уже затронули тему контекстов и областей видимости, стоит отметить что вот данная область (Отмечена синим)
является областью объявления, то есть в данной области мы можем только объявлять переменные и всевозможные функции.
Писать же обработчики и подпрограммы, мы можем только непосредственно внутри функций. Так же важным является и то что
внутри функций мы можем объявлять новые переменные и переопределять существующие.




Синтаксис


Что касается синтаксиса, как и в языке Python, отделение областей видимости
у нас происходит методом табулирования текста вправо. Примером является функция func _ready():



Отделение же команд в GDScript происходит при помощи переноса строки, соответственно знак";"
в конце команды не обязателен, но и при его проставлении код так же будет оставаться корректным



Комментарии в коде GDScript пишутся начиная с символа "#"
и могут содержать любые символы, и всё что вашей душе угодно. Они не учитываются компилятором,
так что и табулировать вы их можете как, хотите, для программы это значения не имеет



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

Автор: TheDoctorChannel | Дата добавления: 24.10.2018 09:51 | Урок прочитан: 367 раз
Присоединяйся к розыгрышу аккаунта разработчика Google Play!
Розыгрыш проводится в честь достижения на канале SkanerSoft 15 000 подписчиков!
Количество участников не ограничено!
Подписаться на канал SkanerSoft