7

我对 python 很陌生,但我想通过制作游戏来学习它,而 pygame 似乎是最好的选择。由于 PyPy 是 Python 的最快实现(我认为),我决定使用它。但我不知道如何让这两者一起工作。

我在窗户上。

如果有人这么好心地一步一步地告诉我我需要做什么,我将非常感激。

到目前为止,我已经安装(解压到文件夹)PyPy,将 pypy.exe 设置为默认打开 .py 文件,安装 Pygame 并尝试运行示例 .py 文件之一。我在文件中的第一行导入时收到“找不到模块 pygame”错误。

4

4 回答 4

8

pygame 与 pypy 不兼容,因此要使用它,您必须坚持使用 cPython。


更新(2018 年 4 月)

正如在这个答案中所指出的,PyPy v6.0版本现在可以与 pygame 一起使用——虽然还没有与当前的稳定版本(pygame 1.9.3)一起使用,但与当前的开发分支(1.9.4.dev0)一起使用。

通过以下方式在 ubuntu 17.10 上测试:

  • 下载并解压最新的 linux 预编译版本
  • 安装 pygame 的构建依赖项:sudo apt build-dep python-pygame
  • 安装点子:./bin/pypy3 -m ensurepip
  • 安装pygame:./bin/pypy3 -m pip install 'Pygame>=1.9.4.dev0'
  • 运行演示:./bin/pypy3 -m pygame.examples.aliens

适用于 pypy3 和 pypy2 版本。

于 2012-11-29T21:42:14.293 回答
4

Pygame 游戏实际上花费很少的时间来运行 python 代码。绝大多数人都花在了 SDLfillflip运营上。大多数fills 是不必要的。这有多重要?好吧,拿走我的电脑。假设您编写了一个游戏,该游戏有一个循环,只为背景绘制一种颜色。它将获得大约 40 fps。这是因为它基本上是单独访问每个像素并写入它。这是每帧使用 200 x 300 = 60000 次操作,什么都不做。

因此,不要绘制整个背景,只需绘制在前一帧上绘制的部分。

这会使您的代码更加复杂,但会产生巨大的性能提升。

另外,不要忘记运行cProfile以查看问题区域在哪里。看,不要猜。

于 2012-11-29T21:58:23.173 回答
3

看起来 PyPy v6(2018 年 4 月)将改善这种情况并使 PyPy 与 PyGame 和其他 C python 扩展兼容。有关示例,请参见https://renesd.blogspot.co.uk/2018/03/pygame-on-pypy-usable.html 。

于 2018-04-26T14:10:38.537 回答
2

我们目前在包索引上还没有 PyPy 的二进制文件。所以你需要从源码编译pygame,而不是仅仅使用pip来安装pygame。

获取 PyPy 版本 6+(或每晚下载一个)。

windows上从源码编译的说明可以使用:https ://www.pygame.org/wiki/CompileWindows

只需使用pypy3二进制而不是那个python

于 2019-01-04T05:45:05.460 回答