我正在尝试学习 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/