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是一个易于使用的Python2d物理库,可以在您需要来自Python2d刚体物理的任何时候使用。完美的时候,你需要在你的游戏,演示或模拟2D物理!它建立在功能非常强大的2D物理库之上 Chipmunk

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

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

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

此版本基于最新的Pymunk版本(6.6.0),使用Chipmunk7版本2e8d4104b7e2380d1a73f5363a931b3eb3de8d07。

安装

在正常情况下,可以使用pip::从PyPI安装pymunk

> 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.exames子程序包中。它们可以直接运行。列出以下示例:

> python -m pymunk.examples -l

并运行其中之一:

> python -m pymunk.examples.breakout

联系和支持

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

不管你用什么方法,只要我一看到你的问题,我都会尽力回答。(如果你这样要求,其他人可能也会帮忙!)

文档

包括应用编程接口参考、用法展示和示例截图在内的完整文档可在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(在CPython3.7及更高版本和Pypy3上运行)

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

  • CFFI(将由PIP自动安装)

  • SetupTools(应随Pip一起提供)

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

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

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

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

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

更古老的 Python

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

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

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

目录

索引和表格