--- title: Написание кода brief: В этом руководстве кратко описано, как работать с кодом в Defold. --- # Написание кода Хотя Defold позволяет создавать большую часть игрового контента с помощью визуальных инструментов, таких как редакторы тайловых карт и эффектов частиц, игровая логика по-прежнему создается с помощью редактора кода. Игровая логика пишется с использованием [языка программирования](https://www.lua.org/), при этом расширения для самого движка пишутся с использованием нативного для целевой платформы языка (языков). ## Написание Lua-кода Defold использует Lua 5.1 и LuaJIT (в зависимости от целевой платформы), и необходимо следовать спецификации языка для этих конкретных версий Lua при написании игровой логики. За подробностями о работе с Lua в Defold обращайтесь к руководству [Lua в Defold](/manuals/lua). ## Использование других языков, транспилируемых в Lua Defold поддерживает использование транспайлеров, создающих Lua-код. Установив расширение транспайлера, вы можете использовать альтернативные языки — такие как [Teal](https://github.com/defold/extension-teal) — для написания Lua с статической проверкой. Это функция в режиме предварительного просмотра, и у неё есть ограничения: текущая поддержка транспайлеров не предоставляет информацию о модулях и функциях, определённых в рантайме Defold. Это означает, что для использования API Defold, таких как `go.animate`, необходимо самостоятельно писать внешние определения. ## Написание нативного кода Defold позволяет расширять игровой движок нативным кодом для доступа к функциональности, специфичной для конкретной платформы и не предоставляемой самим движком. Нативный код также можно использовать, когда производительности Lua недостаточно (ресурсоемкие вычисления, обработка изображений и т.д.). За подробностями обращайтесь к [руководству по нативным расширениям](/manuals/extensions/). ## Использование встроенного редактора кода Defold имеет встроенный редактор кода, который позволяет открывать и редактировать файлы Lua (.lua), сценарии Defold (.script, .gui_script и .render_script), а также любые другие файлы с расширениями, не поддерживаемыми редактором. Кроме того, редактор предоставляет подсветку синтаксиса для Lua и скриптов. ![](/images/editor/code-editor.png) ### Автодополнение кода Встроенный редактор кода показывает автодополнение функций во время написания кода: ![](/images/editor/codecompletion.png) Нажатие CTRL + Space отображает дополнительную информацию о функциях, аргументах и возвращаемых значениях: ![](/images/editor/apireference.png) ### Настройка анализа кода (Linting) Встроенный редактор кода выполняет анализ кода с помощью [Luacheck](https://luacheck.readthedocs.io/en/stable/index.html) и [Lua language server](https://luals.github.io/wiki/diagnostics/). Чтобы настроить Luacheck, создайте файл `.luacheckrc` в корне проекта. Смотрите [страницу конфигурации Luacheck](https://luacheck.readthedocs.io/en/stable/config.html) для списка доступных параметров. Defold использует следующие параметры по умолчанию: ```lua 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](https://marketplace.visualstudio.com/items?itemName=astronachos.defold). ## Программная документация Сообществом созданы пакеты справки по API для [Dash и Zeal](https://forum.defold.com/t/defold-docset-for-dash/2417).