Skip to content

Основы отладки

Во время отладки (проверки работоспособности вашей игры) удобно, чтобы INSTEAD был запущен с параметром -debug, тогда в случае ошибок будет показана более подробная информация о проблеме в виде стека вызовов. Параметр -debug можно задать в ярлыке (если вы работаете в Windows), а для других систем, я думаю вы и так знаете как передавать параметры командной строки.

Кроме того, в режиме -debug автоматически подключается отладчик. Вы можете активировать его с помощью клавиш ctrl-d или f7. Вы можете подключить отладчик и явно указав:

require "dbg"

В коде вашей игры.

При отладке игры обычно нужно часто сохранять игру и загружать состояние игры. Вы можете использовать стандартный механизм сохранений через меню (или по клавишам f2/f3), или воспользоваться быстрым сохранением/загрузкой (клавиши f8/f9).

В режиме '-debug' вы можете перезапускать игру клавишами 'alt-r'. В комбинации с f8/f9 это даёт возможность быстро посмотреть изменения в игре после её правки.

Внимание! Если вы просто перезапустите INSTEAD, то скорее всего увидите старое состояние игры, так как по умолчанию работает режим автозагрузки автосохранения! Либо отключите эту настройку в меню (автосохранение), либо явно перезапускайте игру после правок. Перезапуск возможен через меню (начать заново) или 'alt-r' в режиме '-debug' как это описано выше.

В режиме '-debug' Windows-версия INSTEAD создаёт консольное окно (в Unix версии, если вы запускаете INSTEAD из консоли, вывод будет направлен в неё) в которое будет осуществляться вывод ошибок. Кроме того, используя функцию 'print()', вы сможете порождать свои сообщения с отладочным выводом. Например:

lua
act = function(s)
	print ("Act is here! ");
    ...
end;

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

Вы также можете использовать функцию dprint(), которая посылает вывод в окно отладчика, и вы сможете посмотреть его при входе в режим отладки.

lua
act = function(s)
	dprint ("Act is here! ");
    ...
end;

Во время отладки бывает удобно изучать файлы сохранений, которые содержат состояние переменных игры. Чтобы не искать каждый раз файлы сохранений, создайте каталог saves в директории с вашей игрой (в том каталоге, где содержится main3.lua) и игра будет сохраняться в saves. Этот механизм также будет удобен для переноса игры на другие компьютеры.

Возможно (особенно, если вы пользуетесь Unix системами) вам понравится идея проверки синтаксиса ваших скриптов через запуск компилятора ''luac''. В Windows это тоже возможно, нужно только установить выполняемые файлы lua для Windows (http://luabinaries.sourceforge.net)/ и воспользоваться luac52.exe.

Вы можете проверить синтаксис и с помощью INSTEAD, для этого воспользуйтесь параметром -luac:

sdl-instead -debug -luac <пусть к скрипту.lua>