Python / Pygame从一个文件转换到另一个文件

时间:2011-09-04 02:03:00

标签: python transition pygame blit

很抱歉,如果这个问题非常容易回答,或者我听起来像个白痴。我想知道如何在一个文件,pygame事件循环,blits等中执行脚本,然后切换到另一个文件,SelectWorld.py,它有自己的事件循环,blits等等。如果我只是调用它主要功能,它是否会创建任何减速因为我仍然打开原始文件,或者我只是这样做? SelectWorld.transition()有点像。提前谢谢。

3 个答案:

答案 0 :(得分:1)

这是一个建议:创建两个版本的脚本。将所有东西都归为一体。在另一方面,做正确的事情是将代码布局到具有智能文件名的单独文件中。

现在,使用此命令运行第一个:

 $ time python my_game_all_in_one.py

(美元符号表示命令行提示符。)并运行第二个:

 $ time python my_game.py

time命令会告诉你游戏实际运行的时间,实时和花费的CPU时间。比如说,每次运行两个命令,并取每次的平均值。

这称为“分析”,它将帮助您确定哪种方法最佳,或者它是否会产生影响。

答案 1 :(得分:1)

这里,需要的是能够在两个不同的应用程序之间共享变量:2个不同的脚本,包含事件循环,blits等。因此,根据定义,它们应该在不同的进程上(如果它们必须在同一时间)。

有两种主要方法:

1 - 客户端 - 服务器架构(就像游戏服务器一样)(服务器和客户端都可以在同一台机器上运行)

2 - 在同一台机器上运行2个进程的多处理,具有不同的通信方式和同步变量。 (管道队列,事件等)

我知道您正试图对游戏进行一些变量分析?如果它用于调试您的游戏或测试它。我认为您需要大量代码才能获得一些有用的信息(因为游戏可能运行得太快,您无法分析变量)

你有这些选择:

1 - 导入pdb,pdb.set_trace():它将在你调用函数的行停止进程,在终端上,你可以看到变量值。

2 - 您可以使用Eclipse(使用pyDev):非常好的调试器(逐行)

3 - Unittest,Mock:你应该开始使用它,因为它很有用,因为你可以很容易地看到你打破一些旧代码(使用unittest)和/或测试新代码......

我希望它可以帮助你:)

答案 2 :(得分:0)

原来这个问题的答案非常简单,当我刚刚学习Python时,我回答了这个问题。只是从另一个文件调用一个函数并让它完成所有工作,没有速度降级。感谢所有答案,伙计们。