writing-code.md 7.3 KB


title: Написание кода

brief: В этом руководстве кратко описано, как работать с кодом в Defold.

Написание кода

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

Написание Lua-кода

Defold использует Lua 5.1 и LuaJIT (в зависимости от целевой платформы), и необходимо следовать спецификации языка для этих конкретных версий Lua при написании игровой логики. За подробностями о работе с Lua в Defold обращайтесь к руководству Lua в Defold.

Использование других языков, транспилируемых в Lua

Defold поддерживает использование транспайлеров, создающих Lua-код. Установив расширение транспайлера, вы можете использовать альтернативные языки — такие как Teal — для написания Lua с статической проверкой. Это функция в режиме предварительного просмотра, и у неё есть ограничения: текущая поддержка транспайлеров не предоставляет информацию о модулях и функциях, определённых в рантайме Defold. Это означает, что для использования API Defold, таких как go.animate, необходимо самостоятельно писать внешние определения.

Написание нативного кода

Defold позволяет расширять игровой движок нативным кодом для доступа к функциональности, специфичной для конкретной платформы и не предоставляемой самим движком. Нативный код также можно использовать, когда производительности Lua недостаточно (ресурсоемкие вычисления, обработка изображений и т.д.). За подробностями обращайтесь к руководству по нативным расширениям.

Использование встроенного редактора кода

Defold имеет встроенный редактор кода, который позволяет открывать и редактировать файлы Lua (.lua), сценарии Defold (.script, .gui_script и .render_script), а также любые другие файлы с расширениями, не поддерживаемыми редактором. Кроме того, редактор предоставляет подсветку синтаксиса для Lua и скриптов.

Автодополнение кода

Встроенный редактор кода показывает автодополнение функций во время написания кода:

Нажатие CTRL + Space отображает дополнительную информацию о функциях, аргументах и возвращаемых значениях:

Настройка анализа кода (Linting)

Встроенный редактор кода выполняет анализ кода с помощью Luacheck и Lua language server. Чтобы настроить Luacheck, создайте файл .luacheckrc в корне проекта. Смотрите страницу конфигурации Luacheck для списка доступных параметров. Defold использует следующие параметры по умолчанию:

unused_args = false      -- не предупреждать об неиспользуемых аргументах (часто в .script-файлах)
max_line_length = false  -- не предупреждать о длине строки
ignore = {
    "611",               -- строка содержит только пробелы
    "612",               -- строка содержит пробелы в конце
    "614"                -- пробелы в конце комментариев
},

Использование внешнего редактора кода

Редактор кода в Defold обеспечивает базовую функциональность, необходимую для написания кода, но для более сложных случаев использования или для опытных пользователей с любимым редактором кода можно позволить Defold открывать файлы с помощью внешнего редактора. В окне Preferences на вкладке Code можно определить внешний редактор, который будет использоваться при редактировании кода.

Visual Studio Code — Defold Kit

Defold Kit — это плагин для Visual Studio Code со следующими возможностями:

  • Установка рекомендуемых расширений
  • Подсветка синтаксиса Lua, автодополнение и анализ кода
  • Применение релевантных настроек к рабочему пространству
  • Lua-аннотации для API Defold
  • Lua-аннотации для зависимостей
  • Сборка и запуск
  • Отладка с использованием точек останова
  • Сборка для всех платформ
  • Развёртывание на подключённые мобильные устройства

Подробнее и установка Defold Kit — на Visual Studio Marketplace.

Программная документация

Сообществом созданы пакеты справки по API для Dash и Zeal.