python - 使用 PyGame 显示 PyMunk - Python

标签 python python-3.x pygame pymunk

我正在尝试学习 PyMunk,我使用了网站上的基本示例:

import pymunk

space = pymunk.Space()
space.gravity = 0,-1000

body = pymunk.Body(1,1666)
body.position = 50,100

poly = pymunk.Poly.create_box(body)
space.add(body, poly)

while True:
    space.step(0.02)

但它不创建窗口,不显示任何内容。如何使用PyGame创建图形窗口?

最佳答案

这个例子所做的是创建一个模拟,在里面添加一个盒子形状的对象,然后无限地运行模拟。该代码不打印或绘制任何内容,因此您实际上看不到输出。为了更好地理解屏幕上的内容,我建议您从教程开始:http://www.pymunk.org/en/latest/tutorials/SlideAndPinJoint.html

Pymunk 是一个二维刚体物理库,这意味着它所做的是模拟物体如何在二维空间中移动和相互作用。它不是为绘制到屏幕或读取输入而设计的。

你当然可以直接使用它,只需要打印出模拟结果即可。但更常见的是你想在屏幕上绘图、读取输入等。一种方法是使用游戏库 Pygame,它有助于在屏幕上绘图、读取输入、拥有游戏循环等。

Pymunk 本身确实有一些帮助函数,因此您可以轻松地将它与 Pygame(以及一些其他库)连接起来,但这不是核心部分。通常这些辅助函数适用于您想要一些快速的东西(例如原型(prototype))并且您不需要自定义绘图。

现在,这就是说,如果你想看到一些东西,你可以在 while 循环中添加一个 print 语句,所以它变成这样:

while True:
    space.step(0.02)
    print(body.position)

然后它会在模拟的每一步打印出球的位置,你可以看到它一直在变化(因为在空间上设置了重力)。

Pymunk 中包含更高级的示例,它们既可以交互又可以在屏幕上显示一些内容。这些示例主要依赖于 Pygame 或 Pyglet,但原则是相同的,以防您有不同的库要使用它。

关于python - 使用 PyGame 显示 PyMunk - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45909318/

相关文章:

python - 比较两个 CSV 文件并打印不同的行 Python

python - Twisted/tkinter 程序在退出时崩溃

python - Tkinter 中的笔记本小部件

python-3.x - 如何检查 Python venv 在 Windows 中是否处于事件状态?

python - PyGame 中的闪烁文本

python - 在pygame中绘制一条透明线

python - 根据条件省略 pandas groupby 中的组

python-3.x - PyTorch 运行自定义损失函数

python - 重新编译 python 3 包时未拾取本地编译的 libffi 文件

python - Pygame Keyup/Keydown