Как отлаживать приложение Pygame с помощью Visual Studio во время выполнения
Я делал небольшую игру для домашнего задания, используя Pygame с Livewires. Я пытался отладить его, но безуспешно; Я не могу взглянуть на переменные, которые я хочу посмотреть до того, как будет выполнен основной цикл. Хотя я могу нажать F10, чтобы пропустить основной цикл, это просто останавливает работу окна Autos and Watches; очевидно, они могут записывать переменные только тогда, когда отладчик останавливает игру.
Есть ли способ для меня использовать отладчик для просмотра Vars во время выполнения? Поскольку независимо от того, что я делаю, пока отладчик находится в режиме паузы, я не могу посмотреть на данные внутри игровых объектов, в которые я хочу посмотреть
1 ответ
Благодаря предложению Джека Чжая я понял это.
При достижении точки останова отключите отладчик (ярлык: F5)
Играйте в той точке игры, которую хотите отладить.
Отключите отладчик, используя Break All (ярлык: Ctrl-Alt-Break)
Нажмите F10 несколько раз; это заставляет его пройти еще несколько шагов в главном цикле livewires.
В окне авто есть запись, которая содержит список объектов игры. Просматривайте его, пока не найдете тот, который вы ищете. В моем случае список объектов был self._objects. Второй объект, который я искал, другими словами, был self._objects[1].
Стрелки раскрывающегося списка объектов, которые вы ищете, показывают членов объекта. Если вы хотите посмотреть на свойства объекта менее громоздким способом, используйте Interactive Debugger, чтобы назначить этот объект переменной. Таким образом, вы можете посмотреть на его значения, введя objectNameHere.objectValueHere в интерактивную консоль отладки.
В моем случае мне нужно было набрать player = self._objects[1], чтобы получить его назначение, а затем увидеть позицию игрока x, введя player.x в консоль отладки.
-
Я знаю, что этот ответ может работать только для моей конкретной проблемы, поэтому, если у кого-то есть другой, лучше, пожалуйста, опубликуйте его для других.