Python 如何在运行时使用Visual Studio调试Pygame应用程序

Python 如何在运行时使用Visual Studio调试Pygame应用程序,python,visual-studio,debugging,pygame,livewires,Python,Visual Studio,Debugging,Pygame,Livewires,我一直在用Pygame和Livewires制作一个小游戏来完成家庭作业。我一直试图调试它,但没有成功;在执行主循环之前,我无法查看想要查看的变量。虽然我可以按F10跳过主循环,但这只会停止自动和手表窗口的工作;显然,他们只能在调试器暂停游戏时记录变量 我有没有办法在运行时使用调试器查看变量?因为无论我在调试器暂停时做什么,我都无法查看我想查看的游戏对象中的数据。多亏了Jack Zhai的建议,我找到了答案 命中断点时,取消暂停调试器(快捷方式:F5) 在游戏中玩到你想要调试的点 使用“全部中断”

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


我有没有办法在运行时使用调试器查看变量?因为无论我在调试器暂停时做什么,我都无法查看我想查看的游戏对象中的数据。多亏了Jack Zhai的建议,我找到了答案

  • 命中断点时,取消暂停调试器(快捷方式:F5)

  • 在游戏中玩到你想要调试的点

  • 使用“全部中断”重新使用调试器(快捷方式:Ctrl-Alt-Break)

  • 按F10几次;这使得它在主livewires循环中执行更多步骤

  • 在“自动”窗口中,有一个条目包含游戏对象列表。仔细看,直到你找到你要找的那个。在我的例子中,对象列表是self.\u对象。我要找的对象是第二个,换句话说,就是自我

  • 要查找的对象的下拉箭头显示该对象的成员。如果希望以不太麻烦的方式查看对象的属性,请使用交互式调试器将该对象指定给变量。这样,您可以通过在交互式调试控制台中键入objectNameHere.objectValueHere来查看其值

  • 在我的例子中,我必须输入player=self.\u objects[1]来分配它,然后通过在调试控制台中输入player.x来查看播放器的x位置

    --


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

    感谢翟克强的建议,我找到了答案

  • 命中断点时,取消暂停调试器(快捷方式:F5)

  • 在游戏中玩到你想要调试的点

  • 使用“全部中断”重新使用调试器(快捷方式:Ctrl-Alt-Break)

  • 按F10几次;这使得它在主livewires循环中执行更多步骤

  • 在“自动”窗口中,有一个条目包含游戏对象列表。仔细看,直到你找到你要找的那个。在我的例子中,对象列表是self.\u对象。我要找的对象是第二个,换句话说,就是自我

  • 要查找的对象的下拉箭头显示该对象的成员。如果希望以不太麻烦的方式查看对象的属性,请使用交互式调试器将该对象指定给变量。这样,您可以通过在交互式调试控制台中键入objectNameHere.objectValueHere来查看其值

  • 在我的例子中,我必须输入player=self.\u objects[1]来分配它,然后通过在调试控制台中输入player.x来查看播放器的x位置

    --


    我知道这个答案可能只适用于我的特定问题,因此如果其他人有更好的答案,请出于他人的考虑发布它。

    您能在自己的网站上分享一个关于结果的屏幕截图吗?你真的在应用程序中添加断点吗?断点命中了吗?我所知道的是,如果遇到断点,要使用数据提示查看值,只需将鼠标悬停在编辑器中的任何变量上。或者,当调试器被破坏时,您可以使用python debug interactive?是的,我添加了一个断点,它被击中了。尽管如此,我尝试了你关于鼠标悬停的建议,在让游戏经过足够多的帧之后,我设法看到了游戏对象的值。然后,我取消了调试器的启动,然后用Break All重新使用它。按F10几次后,我注意到我可以看到我的对象的值(尽管界面不是直观的)。所以,我想我的问题已经解决了。谢谢:)你能分享一下你这边的结果吗?你真的在应用程序中添加断点吗?断点命中了吗?我所知道的是,如果遇到断点,要使用数据提示查看值,只需将鼠标悬停在编辑器中的任何变量上。或者,当调试器被破坏时,您可以使用python debug interactive?是的,我添加了一个断点,它被击中了。尽管如此,我尝试了你关于鼠标悬停的建议,在让游戏经过足够多的帧之后,我设法看到了游戏对象的值。然后,我取消了调试器的启动,然后用Break All重新使用它。按F10几次后,我注意到我可以看到我的对象的值(尽管界面不是直观的)。所以,我想我的问题已经解决了。谢谢:)很高兴知道您已经解决了这个问题,感谢您的分享,请将您的解决方案标记为答案:)当然。如果其他人发布了更好的答案,我一定会将他们的答案标记为最佳答案:)很高兴知道您已经解决了这个问题,感谢您的分享,请将您的解决方案标记为答案:)当然。如果其他人给出了更好的答案,我一定会把他们的评为最好的:)