Click to dismiss. Animation by Er Robin at codepen.io

Pymunk

https://raw.githubusercontent.com/viblo/pymunk/master/docs/src/_static/pymunk_logo_animation.gif

Pymunk是一个易于使用的Python 2D物理库,每当您需要Python的2D刚性物体物理时,都可以使用它。当您在游戏、演示或模拟中需要2D物理时,完美无瑕!它建立在Munk 2D之上,Munk 2D是非常强大的2D物理库的分支 Chipmunk2D .

第一个版本于2007年发布,至今仍在积极开发和维护,经过了15年的积极开发!

在许多大大小小的项目中都成功地使用了Pymunk。例如:3个PyWeek游戏竞赛获奖者,数十篇发表的科学论文,甚至在一辆自动驾驶汽车上模拟!有关例子,请参阅《Pymunk》网页上的展示案例部分。

2007 - 2025年,Victor Blomqvist -vb@viblo.se,麻省理工学院许可证

此版本基于最新的Pymunk版本(7.0.0),使用Munk 2D 2.0版本5ef7498946f0e956f294cb3fea283626921e4128。

安装

在正常情况下,Pymunk可以通过pip从PyPI安装::

> pip install pymunk

它有一个直接的依赖,CFFI。

Pymunk也可以与Conda一起安装,从Conda-Forge通道::

> conda install -c conda-forge pymunk

有关更详细的安装说明,请参阅完整的Pymunk文档。

示例

快速代码示例::

import pymunk               # Import pymunk..

space = pymunk.Space()      # Create a Space which contain the simulation
space.gravity = 0,-981      # Set its gravity

body = pymunk.Body()        # Create a Body
body.position = 50,100      # Set the position of the body

poly = pymunk.Poly.create_box(body) # Create a box shape and attach to body
poly.mass = 10              # Set the mass on the shape
space.add(body, poly)       # Add both body and shape to the simulation

print_options = pymunk.SpaceDebugDrawOptions() # For easy printing

for _ in range(100):        # Run simulation 100 steps in total
    space.step(0.02)        # Step the simulation one step forward
    space.debug_draw(print_options) # Print the state of the simulation

这将打印(到控制台)模拟的状态。有关更多视觉、详细和高级的示例,请查看包含的演示。它们包含在Pymunk安装中的pymunk.examples子包中。它们可以直接运行。列出示例:

> python -m pymunk.examples -l

并运行其中之一:

> python -m pymunk.examples.index_video

联系和支持

Homepage

http://www.pymunk.org/

Stackoverflow

你可以在Stackoverflow上提问/浏览老问题,只需寻找Pymunk标签即可。Http://stackoverflow.com/questions/tagged/pymunk

E-Mail

您可以直接给我发电子邮件:vb@viblo.se

Issue Tracker

请使用Github上的问题跟踪器报告您发现的任何问题。这也是功能请求的地方:https://github.com/viblo/pymunk/issues

无论您使用何种方法,我都会在看到您的问题后尽快尝试回答。(And如果您在Stackoverover上询问其他人也可能会提供帮助!)

文档

包括应用编程接口参考、用法展示和示例截图在内的完整文档可在Pymunk主页上找到,网址为http://www.pymunk.org

Pymunk的愿景

" Make 2D physics easy to include in your game "

它是(或正在努力成为):

  • Easy to use -它应该很容易使用,不需要复杂的代码来添加物理到您的游戏或程序中。

  • "Pythonic" -c库(Chipmunk)在底部应该看不到,它应该感觉像是一个Python库(没有奇怪的命名、面向对象、没有内存处理等等)

  • Simple to build & install -你不应该安装无数的库来安装它,或者做很多命令行技巧。

  • Multi-platform -应该可以在Windows、*NIX和OSX上运行。

  • Non-intrusive +它不应该限制你如何构建你的程序,也不应该强迫你使用一个特殊的游戏循环,它应该可以与其他库一起使用,比如PyGame和Pyglet。

依赖项/要求

基本上,Pymunk已经被设计成尽可能容易安装和分发,通常 pip install 会帮你处理好一切的。

  • Python(适用于CPython 3.8及更高版本和Pypy 3)

  • Chipmunk(预置并在使用双轮时包括在内)

  • CFFI(将由PIP自动安装)

  • SetupTools(应随Pip一起提供)

  • GCC和朋友们(可选,从源代码编译Pymunk需要它。(在Windows上需要使用Visual Studio进行编译)

  • Pygame或Pygame-CE(可选,您需要它来运行基于Pygame的演示)

  • Pyglet(可选,您需要它来运行基于Pyglet的演示)

  • Matplotlib和Jupyter笔记本(可选,您需要它来运行基于Matplotlib的演示)

  • Numpy(可选,您需要运行一些演示)

  • Sphinx&aafigure&sphinx_audoctypehints(可选,您需要它来构建文档)

更古老的 Python

  • 从Pymunk 6.0中删除了对Python2(和Python3.0-3.5)的支持。

  • 从Pymunk 6.5.2版本中删除了对Python3.6的支持。

  • Pymunk 6.9.0放弃了对Python 3.7的支持。

  • Pymunk 7.0.0放弃了对Python 3.8的支持。

如果您使用Python的这些遗留版本中的任何一个,请使用较旧的Pymunk版本。(It可能也适用于较新的皮蒙克,但它没有经过测试,也没有制造轮子。)

目录

备注

构建时间: 2025 年 05 月 29 日

索引和表格