Pymunk¶
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
- Stackoverflow
你可以在Stackoverflow上提问/浏览老问题,只需寻找Pymunk标签即可。Http://stackoverflow.com/questions/tagged/pymunk
您可以直接给我发电子邮件: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,但它没有经过测试,也没有制造轮子。)
目录¶
- 安装
- 概述
- API参考
pymunk
套餐pymunk.autogeometry
模块pymunk.batch
模块pymunk.constraints
模块pymunk.vec2d
模块pymunk.matplotlib_util
模块pymunk.pygame_util
模块pymunk.pyglet_util
模块pymunk.tests
模块pymunk.examples
模块Arbiter
BB
Body
Circle
CollisionHandler
ContactPoint
ContactPointSet
PointQueryInfo
Poly
Segment
SegmentQueryInfo
Shape
ShapeFilter
ShapeQueryInfo
Space
SpaceDebugDrawOptions
Transform
Vec2d
chipmunk_version
moment_for_box()
moment_for_circle()
moment_for_poly()
moment_for_segment()
version
- 实例
- Jupyter笔记本
- 单机版 Python
- arrows.py
- balls_and_lines.py
- basic_test.py
- bouncing_balls.py
- box2d_pyramid.py
- box2d_vertical_stack.py
- breakout.py
- camera.py
- collisions.py
- colors.py
- colors_pyglet_batch.py
- constraints.py
- contact_and_no_flipy.py
- contact_with_friction.py
- copy_and_pickle.py
- damped_rotary_spring_pointer.py
- deformable.py
- flipper.py
- index_video.py
- newtons_cradle.py
- planet.py
- platformer.py
- playground.py
- point_query.py
- pygame_util_demo.py
- pyglet_util_demo.py
- shapes_for_draw_demos.py
- slide_and_pinjoint.py
- spiderweb.py
- tank.py
- using_sprites.py
- using_sprites_pyglet.py
- 其他示例
- 案例展示
- 教程
- 基准
- 进阶
- 更改日志
- Pymunk6.6.0(2023-11-02)
- Pymunk6.5.2(2023-10-22)
- Pymunk6.5.1(2023-06-26)
- Pymunk6.5.0(2023-06-23)
- Pymunk6.4.0(2022-11-20)
- Pymunk6.3.0(2022-11-04)
- Pymunk6.2.1(2021-10-31)
- Pymunk6.2.0(2021-08-25)
- Pymunk6.1.0(2021-08-11)
- 《Pymunk6.0.0》(2020-12-07)
- 《Pymunk5.7.0》(2020-09-16)
- Pymunk5.6.0(2019-11-02)
- Pymunk5.5.0(2019-05-03)
- Pymunk5.4.2(2019-01-07)
- Pymunk5.4.1(2018-12-31)
- Pymunk5.4.0(2018-10-24)
- Pymunk5.3.2(2017-09-16)
- Pymunk5.3.1(2017-07-15)
- Pymunk5.3.0(2017-06-11)
- Pymunk5.2.0(2017-03-25)
- Pymunk5.1.0(2016-10-17)
- Pymunk5.0.0(2016-07-17)
- Pymunk4.0.0(2013-08-25)
- Pymunk3.0.0(2012-09-02)
- Pymunk2.1.0(2011-12-03)
- Pymunk2.0.0(2011-09-04)
- Pymunk1.0.0(2010-07-16)
- Pymunk0.8.3(2009-07-26)
- Pymunk0.8.2(2009-04-22)
- Pymunk0.8.1(2008-11-02)
- 《Pymunk0.8》(2008-06-15)
- Pymunk0.1(2007-08-01)
- 下载
- 问题跟踪器
- 源存储库
- 许可证