【问题标题】:How to debug Pygame application with Visual Studio during runtime如何在运行时使用 Visual Studio 调试 Pygame 应用程序
【发布时间】:2017-01-25 01:58:49
【问题描述】:

我一直在使用 Pygame 和 Livewires 为家庭作业制作一个小游戏。我一直在尝试调试它,但没有成功;在执行主循环之前,我无法查看要查看的变量。虽然我可以按 F10 跳过主循环,但这只会让 Autos and Watches 窗口停止工作;显然,他们只能在调试器暂停游戏时记录变量。

有没有办法让我使用调试器在运行时查看变量?因为无论我在调试器暂停时做什么,我都无法查看我想查看的游戏对象内部的数据

【问题讨论】:

  • 你能分享一个关于你身边结果的屏幕截图吗?你真的在你的应用程序中添加了一个断点吗?断点命中了吗?我所知道的是,如果断点被击中,要使用 DataTips 查看值,只需将鼠标悬停在编辑器中的任何变量上即可。或者您可以在调试器损坏时使用 python 调试交互。
  • 你在说什么结果?是的,我添加了一个断点,它被击中了。不过,我尝试了您关于将鼠标悬停在鼠标上的建议,并且在游戏经过足够多的帧之后,我设法看到了游戏对象的值。然后,我取消了调试器的暂停,然后用 Break All 重新暂停了它。按 F10 几次后,我注意到我可以看到我的对象的值(尽管界面不直观)。所以,我想我的问题已经解决了。谢谢:)

标签: python visual-studio debugging pygame livewires


【解决方案1】:

感谢Jack Zhai的建议,我想通了。

  1. 当断点被命中时,取消暂停调试器(快捷键:F5)

  2. 在游戏中玩到要调试的位置。

  3. 使用 Break All 重新暂停调试器(快捷键:Ctrl-Alt-Break)

  4. 按 F10 几次;这使它在主 livewires 循环中多走几步。

  5. 在自动窗口中,有一个条目包含游戏对象的列表。翻阅它,直到找到你要找的那个。在我的例子中,对象列表是 self._objects。我正在寻找的对象是第二个,换句话说,就是 self._objects[1]。

  6. 您要查找的对象的下拉箭头显示对象的成员。如果您想以一种不那么繁琐的方式查看对象的属性,请使用交互式调试器将该对象分配给一个变量。这样,您可以通过在交互式调试控制台中键入 objectNameHere.objectValueHere 来查看其值。

在我的例子中,我必须输入 player = self._objects[1] 来分配它,然后通过在调试控制台中输入 player.x 可以看到玩家的 x 位置。

--

我知道这个答案可能只适用于我的具体问题,所以如果其他人有更好的答案,请为他人着想。

【讨论】:

  • 很高兴知道您已经解决了这个问题,感谢您的分享,请将您的解决方案标记为答案:)
  • 当然。如果其他人发布了更好的答案,我一定会将他们的答案标记为最佳答案:)
猜你喜欢
  • 2017-04-12
  • 2011-03-22
  • 2015-05-13
  • 2012-05-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-21
  • 1970-01-01
相关资源
最近更新 更多