Инструменты разработчика (Developer Tools)

Материал из Ren'Py Wiki
Перейти к навигации Перейти к поиску

Ren'Py включает ряд в себя ряд функций, облегчающих жизнь разработчику визуальных новелл. Для работы многих из них требуется переменная config.developer со значением True.

Вызов «Консоли» с помощью «Shift+O» (Shift+O Console)[править | править код]

Консоль отладки позволяет в интерактивном режиме запускать скрипт Ren'Py и операторы Python, и сразу же видеть результаты их выполнения. Консоль доступна в режиме разработчика или когда переменная config.console принимает значение True, а также её можно вызвать, зажав клавиши Shift+O.


Консоль отладки можно использовать для:

  • Перехода к метке.
  • Проверки в интерактивном режиме операторов в скрипте Ren'Py.
  • Вычисления выражения или оператора языка Python, чтобы увидеть результат.
  • Трассировка выражений языка программирования Python по ходу игры.

Вызов «Поддержка редактора» с помощью «Shift+E» (Shift+E Editor Support)[править | править код]

Переменная config.editor позволяет разработчику определить команду для вызова текстового редактора, которая запускается при нажатии клавиши launch_editor (по умолчанию Shift+E).

Пожалуйста, ознакомьтесь с разделом «Интеграцией текстового редактора».

Вызов «Меню разработчика» с помощью «Shift+D» (Shift+D Developer Menu)[править | править код]

Когда переменная config.developer принимает значение True, нажатие клавиш Shift+D отобразит меню разработчика, которое обеспечивает свободный доступ к некоторым функциям Ren'Py, приведенным ниже.

Вызов «Перезагрузка» с помощью «Shift+R» (Shift+R Reloading)[править | править код]

Когда переменная config.developer принимает значение True, нажатие Shift+R сохранит текущую игру, перезагрузит её скрипт и затем снова загрузит игру. Перезагрузка, как правило, перемещает вас к последнему неизменённому оператору, возникшему перед нажатием Shift+R.

Это позволяет разработчику вносить изменения в скрипт при помощи внешнего редактора, а не выходить и перезапускать Ren'Py, чтобы увидеть результат внесенных изменений.

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

Вызов «Просмотр стиля» с помощью «Shift+I» (Shift+I Style Inspecting)[править | править код]

Когда переменная config.developer принимает значение True, нажатие Shift+I вызовет проверку стиля. Это выведет на экран список отображаемых объектов, на которые наведён курсор. Для каждого отображаемого объекта будет выведен тип, используемый стиль и размер, в котором объект отображается на экране. Также будет указано местоположения объекта в скрипте.

Вызов «Экспорт стиля» с помощью «Shift+Y» (Shift+Y Style Dumping)[править | править код]

Когда переменная config.developer принимает значение True, нажатие клавиши dump_styles (по умолчанию Shift+Y) запишет описание каждого стиля, известного Ren'Py, в файл «styles.txt». Это описание включает каждое свойство, которое является частью стиля, значение этого свойства и стиль, от которого свойство унаследовано.

Вызов «Быстрый пропуск» с помощью «>» (> Fast Skipping)[править | править код]

Когда переменные config.developer или config.fast_skipping принимают значение True, нажатие клавиши fast_skip (по умолчанию «>») приводит к тому, что игра немедленно переходит к следующему важному взаимодействию. Для этой цели важным взаимодействием является то взаимодействие, которое не вызывается оператором say, переходом или командой «пауза». Обычно это предполагает пропуск до следующего оператора menu, но пропуск также останавливается, когда возникают определенные пользователем формы взаимодействия.

Перемещение к строке (Warping to a Line)[править | править код]

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

Чтобы вызвать перемещение, запустите Ren'Py с аргументом командной строки --warp, после которого укажите комбинацию из имени файла, двоеточия и номера строки, чтобы точно определить, куда вы хотите перейти. Например:

renpy.exe my_project --warp script.rpy:458

Здесь my_project – полный путь к корневой папке вашего проекта.

Когда применяется метод перемещения, Ren'Py выполняет ряд действий. Сначала он находит в программе все операторы scene. Затем Ren'Py пытается найти путь от операторов scene к каждому доступному оператору в игре. После этого он выбирает ближайший доступный оператор к заданной строке, но расположенный до строки или в ней самой. Он работает в обратном направлении от этого оператора до оператора scene, записывая пройденный путь. Затем Ren'Py выполняет оператор scene и любые операторы show и hide, найденные на этом пути. Наконец, он передаёт управление найденному оператору.

Имеется ряд довольно серьёзных недостатков применения функции warp. Во-первых, она проверяет единственный путь, а это означает, что хотя путь может быть репрезентативным для некоторого маршрута исполнения, вполне возможно, что на каком-то другом маршруте может возникнуть ошибка. В целом, путь не учитывает игровую логику, так что вполне возможно иметь путь, который на самом деле недостижим. На самом деле это особо серьёзная проблема только в игр с большим количеством элементов управления, особенно в тех, которые часто используют язык программирования Python в коде.

Однако самая большая проблема заключается в том, что код на Python не выполняется перед оператором, к которому вы хотите перейти. Вышесказанное означает, что все переменные будут неинициализированными, что может привести к сбоям при их использовании. Для решения этой проблемы можно определить метку after_warp, которая вызывается после перемещения к строке, но до выполнения оператора warped-to. Эта метка может установить переменные в программе, а затем вернуться к предварительному просмотру.

Функции warp требуется переменная config.developer со значением True, чтобы функционировать.

Функции отладки (Debug Functions)[править | править код]

renpy.get_filename_line()

Возвращает пару, задающую имя файла и номер строки текущего оператора.


renpy.log(msg)

Если переменная config.log не установлена, функция бездействует. Иначе функция отладки открывает файл журнала отладки (если он ещё не открыт), форматирует сообщение в столбцы config.log_width и выводит его в файле журнала.


renpy.unwatch(expr)

Прекращает наблюдать за заданным выражением Python.


renpy.watch(expr)

Отслеживает заданное выражение Python, отображая его в верхнем правом углу экрана.

Источник[править | править код]

  1. Статья "Developer Tools" на английском языке
  2. Помощь при переводе статьи "Developer Tools" на русский язык: "Launchpad: developer-tools"

На главную страницу Официальная документация движка Вернуться к началу статьи