实例¶
在这里,您将找到包含的示例列表。每个示例都有一个简短的描述和一个屏幕截图(如果适用)。
要查看示例的源代码,请通过以下链接在GitHub上打开它。这些示例也包含在Pymunk的源代码发行版中(但如果您使用轮子文件进行安装,则不会包含这些示例)。您可以在PYPI,https://pypi.org/project/pymunk/#files(文件名为PYMUNK-x.y.z.ZIP)中找到源代码发行版。
Jupyter笔记本¶
有几个例子以Jupyter笔记本(.ipynb)的形式提供。它们既可以直接在GitHub上的浏览器中在线查看,也可以作为笔记本打开。
matplotlib_util_demo.ipynb¶
使用matplotlib和笔记本,显示与pyGame和pyglet绘制演示相同的空间。
资料来源: examples/matplotlib_util_demo.ipynb

newtons_cradle.ipynb¶
类似于Newton_Cradle.py的模拟,但这次是作为笔记本。与绘制演示相比,此演示将输出模拟空间的动画。
单机版 Python¶
要自己运行这些示例,可以安装pymunk并运行mobule。或者,您可以单独运行每个文件。
鉴于已经安装了Pymunk:
$> python -m pymunk.examples.breakout
要列出所有示例,请使用-L选项::
$> python -m pymunk.examples -l
每个例子都包含一些独一无二的东西。并不是所有的示例都使用相同的样式。例如,一些代码使用pymunk.pyGame_util模块绘制内容,其他代码本身包含实际的绘制代码。然而,每个例子都是自包含的。除了外部库(如pyGame)和pymunk之外,每个示例都可以直接运行,以便于阅读代码并理解所发生的事情,即使这意味着每个示例都会重复一些代码。
如果你已经制作了一些使用金龟子的东西,并希望在这里或网站的展示部分展示它,请随时与我联系!
arrows.py¶
资料来源: examples/arrows.py
展示了可以以一种有点逼真的方式粘在物体上的飞行箭头。

balls_and_lines.py¶
资料来源: examples/balls_and_lines.py
此示例允许您动态创建静态墙和动态球

basic_test.py¶
资料来源: examples/basic_test.py
非常简单的示例,它不像其他示例那样依赖于任何第三方库,如pyGame或pyglet。
bouncing_balls.py¶
资料来源: examples/bouncing_balls.py
此示例在由两个分段形状构造的L形状上随机发生(反弹)球。不能互动。

box2d_pyramid.py¶
资料来源: examples/box2d_pyramid.py
从box2d试验台翻拍金字塔演示。

box2d_vertical_stack.py¶
资料来源: examples/box2d_vertical_stack.py
从box2d试验台重新制作垂直堆栈演示。

breakout.py¶
资料来源: examples/breakout.py
非常简单的突破克隆。圆形作为桨,然后用多边形构造的易碎砖块。
该代码展示了几个Pymunk概念,如弹性、脉冲、恒定对象速度、关节、碰撞处理程序和后步骤回调。

camera.py¶
资料来源: examples/camera.py
关于如何将SpaceDebugDrawOptions上的Transform属性用作相机以允许平移的基本演示。使用箭头移动相机。

collisions.py¶
资料来源: examples/collisions.py
此示例尝试显示冲突点和回调

colors.py¶
资料来源: examples/colors.py
Pymunk决定论的一个例子是,根据球的位置给球上色,然后重新产卵,以验证每个球最终落在同一个地方。灵感来自Pymunk用户南岛。

colors_pyglet_batch.py¶
资料来源: examples/colors_pyglet_batch.py
Pymunk决定论的一个例子是,根据球的位置给球上色,然后重新产卵,以验证每个球最终落在同一个地方。灵感来自Pymunk用户南岛。
这也演示了pymunk.Batch中的批处理API带来的性能提升。
使用cProfile运行此脚本30秒,在没有批处理的情况下,大约57%的时间花在绘制上,但在批处理的情况下,仅使用34%的时间。剩下的时间主要花在 space.Step 将模拟向前推进。
要尝试自己::
> python -m cProfile -o batch_on.prof -m pymunk.examples.colors_pyglet_batch

constraints.py¶
资料来源: examples/constraints.py
Pymunk约束演示。展示了Pymunk中包含的所有约束。
改编自Chipmunk关节演示:https://github.com/slembcke/Chipmunk2D/blob/master/demo/Joints.c

contact_and_no_flipy.py¶
资料来源: examples/contact_and_no_flipy.py
此示例在由两个分段形状构造的L形状上随机发生(反弹)球。对于每个碰撞,它会绘制一个红色圆圈,其大小取决于碰撞强度。不能互动。

contact_with_friction.py¶
资料来源: examples/contact_with_friction.py
此示例在由两个分段形状构造的L形状上随机发生(反弹)球。由于摩擦力的作用,显示出粘合强度和旋转的球。不能互动。

copy_and_pickle.py¶
资料来源: examples/copy_and_pickle.py
此示例说明如何使用PICLE复制、保存和加载空间。

damped_rotary_spring_pointer.py¶
资料来源: examples/damped_rotary_spring_pointer.py
这个例子展示了一个指向或瞄准光标的箭头。

deformable.py¶
资料来源: examples/deformable.py
这是一个关于如何将自动拼接测量用于可变形地形的示例。

flipper.py¶
资料来源: examples/flipper.py
一个非常基本的Pymunk游戏。

index_video.py¶
资料来源: examples/index_video.py
用于在Pymunk主页上生成徽标动画的程序。
这个程序将展示Pymunk的几个功能,如碰撞,调试绘图,根据图像自动生成形状,马达,关节和沉睡的身体。

newtons_cradle.py¶
资料来源: examples/newtons_cradle.py
带有交互模式的牛顿摇篮的屏幕保护程序版本。

planet.py¶
资料来源: examples/planet.py
围绕恒星运行的行星/卫星(小盒子)展示。
使用自定义速度函数手动计算重力,假设恒星在中间,质量足够大,卫星不会影响它。
这是包括在Chipmunk中的星球演示的一个端口。

platformer.py¶
资料来源: examples/platformer.py
展示一个非常基本的2D平台
红色女孩雪碧取自西斯杰斯特的RMXP Resources:http://untamed.wild-refuge.net/rmxpresources.php?characters
备注
这个例子的代码有点凌乱。如果您将其应用到您自己的代码中,您可能希望以不同的方式构建它。

playground.py¶
资料来源: examples/playground.py
一个基本的操场。最有趣的功能是画一个形状,只要你想移动鼠标,Chipmunk就会从画中画出一个近似的多边形形状。

point_query.py¶
资料来源: examples/point_query.py
此示例通过突出显示鼠标指针下的形状来演示点查询。

pygame_util_demo.py¶
资料来源: examples/pygame_util_demo.py
展示pymunk.pyGame_util绘图方法的输出将是什么样子。
有关与pyglet的比较,请参见pyglet_util_demo.py。

pyglet_util_demo.py¶
资料来源: examples/pyglet_util_demo.py
展示pymunk.pyglet_util绘图方法的输出将是什么样子。
请参见pyGame_util_demo.py以了解与pyGame的比较。

shapes_for_draw_demos.py¶
资料来源: examples/shapes_for_draw_demos.py
DRAW演示的助手函数FILL_SPACE。给空间增加了很多东西。
slide_and_pinjoint.py¶
资料来源: examples/slide_and_pinjoint.py
L的形状,附加了一个关节,并被约束为不能倾倒。
此示例也用于快速入门教程。

spiderweb.py¶
资料来源: examples/spiderweb.py
一个有弹性的蜘蛛网的展示(用侏儒绘制)
可以用鼠标抓取其中一个道口

tank.py¶
资料来源: examples/tank.py
Chipmunk之港坦克演示。展示一辆自上而下的坦克驶向鼠标,并在途中撞到障碍物。

using_sprites.py¶
资料来源: examples/using_sprites.py
一个非常基本的例子,使用一个精灵图像来绘制一个更类似于你在真实游戏中所做的形状,而不是其他例子中使用的简单的线条画。

using_sprites_pyglet.py¶
资料来源: examples/using_sprites_pyglet.py
此示例是Using_sprites示例的克隆,不同之处在于它使用了pyglet而不是pyGame来展示精灵绘图。

其他示例¶
kivy_pymunk_demo¶
资料来源: additional_examples/kivy_pymunk_demo
在pymunk.org上用于介绍动画的介绍视频的基本端口。该代码在Windows和Android上都进行了测试。
请注意,它不显示Kivy最佳实践,仅以最基本的方式将INTERO_VIDEO代码转换为Kivy,以表明这是可能的,它不应该显示使用Pymunk构建Kivy应用程序的最佳方式。

no_dependencies.py¶
资料来源: additional_examples/no_dependencies.py
非常简单的示例,它不像其他示例那样依赖于任何第三方库,如pyGame或pyglet。
py2exe_setup__basic_test.py¶
资料来源: additional_examples/py2exe_setup__basic_test.py
简单的py2exe示例,用于创建no_Dependency示例的可执行文件。
在python3.11上的py2exe 0.13.0.0上测试