对不起,如果这个问题非常容易回答,或者我听起来像个白痴。我想知道如何在一个文件、pygame 事件循环、blits 等中执行脚本,然后切换到另一个文件 SelectWorld.py,它有自己的事件循环和 blits 等。如果我只是称之为main 函数,它是否会因为我仍然打开原始文件而造成任何减速,或者我可以这样做吗?SelectWorld.transition() 之类的东西。提前致谢。
3 回答
这是一个建议:创建两个版本的脚本。把所有东西都倒进一个。另一方面,正确地将代码布局到具有智能文件名的单独文件中。
现在,使用以下命令运行第一个:
$ time python my_game_all_in_one.py
(美元符号代表命令行提示符。)然后运行第二个:
$ time python my_game.py
该time
命令将实时告诉您游戏实际运行所花费的时间,以及所花费的 CPU 时间。运行这两个命令,比如说,每个命令十次,然后取每次的平均值。
这称为“分析”,它将帮助您确定哪种方法最好,或者它是否会有所作为。
在这里,想要的是能够在两个不同的应用程序之间共享变量:两个不同的脚本,带有事件循环、blit 等。所以根据定义,它们应该在不同的进程上(如果它们必须同时运行) .
有两种主要方法可以做到这一点:
1 - 客户端-服务器架构(就像游戏服务器一样)(服务器和客户端可以在同一台机器上运行)
2 - 多处理,2 个进程在同一台机器上运行,具有不同的通信方式和同步变量。(管道队列、事件等)
我了解您正在尝试对游戏进行某种变量分析?如果它用于调试您的游戏或测试它。我认为您需要大量代码才能获得一些有用的信息(因为游戏可能运行得太快而无法分析变量)
你有这些选择:
1 - import pdb, pdb.set_trace():它将在您调用函数的行停止进程,并且在终端上,您可以看到变量值。
2 - 您可以使用 Eclipse (with pyDev): 非常好的调试器 (逐行)
3 - Unittest,Mock:是你应该开始使用的东西,因为它很有用,因为当你破坏一些旧代码(使用 unittest)和/或测试新代码时,你可以很容易地看到......
我希望它可以帮助你:)
事实证明,这个问题的答案非常简单,我刚学 Python 时就问过这个问题。仅仅从另一个文件调用一个函数并让它完成所有工作并不会降低速度。感谢所有的答案,伙计们。