实例

在这里,您将找到包含的示例列表。每个示例都有一个简短的描述和一个屏幕截图(如果适用)。

要查看示例的源代码,请通过以下链接在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

_images/matplotlib_util_demo.png

newtons_cradle.ipynb

类似于Newton_Cradle.py的模拟,但这次是作为笔记本。与绘制演示相比,此演示将输出模拟空间的动画。

资料来源: examples/newtons_cradle.ipynb

单机版 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

展示了可以以一种有点逼真的方式粘在物体上的飞行箭头。

_images/arrows.png

balls_and_lines.py

资料来源: examples/balls_and_lines.py

此示例允许您动态创建静态墙和动态球

_images/balls_and_lines.png

basic_test.py

资料来源: examples/basic_test.py

非常简单的示例,它不像其他示例那样依赖于任何第三方库,如pyGame或pyglet。

bouncing_balls.py

资料来源: examples/bouncing_balls.py

此示例在由两个分段形状构造的L形状上随机发生(反弹)球。不能互动。

_images/bouncing_balls.png

box2d_pyramid.py

资料来源: examples/box2d_pyramid.py

从box2d试验台翻拍金字塔演示。

_images/box2d_pyramid.png

box2d_vertical_stack.py

资料来源: examples/box2d_vertical_stack.py

从box2d试验台重新制作垂直堆栈演示。

_images/box2d_vertical_stack.png

breakout.py

资料来源: examples/breakout.py

非常简单的突破克隆。圆形作为桨,然后用多边形构造的易碎砖块。

该代码展示了几个Pymunk概念,如弹性、脉冲、恒定对象速度、关节、碰撞处理程序和后步骤回调。

_images/breakout.png

camera.py

资料来源: examples/camera.py

关于如何将SpaceDebugDrawOptions上的Transform属性用作相机以允许平移的基本演示。使用箭头移动相机。

_images/camera.png

collisions.py

资料来源: examples/collisions.py

此示例尝试显示冲突点和回调

_images/collisions.png

colors.py

资料来源: examples/colors.py

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

_images/colors.png

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
_images/colors_pyglet_batch.png

constraints.py

资料来源: examples/constraints.py

Pymunk约束演示。展示了Pymunk中包含的所有约束。

改编自Chipmunk关节演示:https://github.com/slembcke/Chipmunk2D/blob/master/demo/Joints.c

_images/constraints.png

contact_and_no_flipy.py

资料来源: examples/contact_and_no_flipy.py

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

_images/contact_and_no_flipy.png

contact_with_friction.py

资料来源: examples/contact_with_friction.py

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

_images/contact_with_friction.png

copy_and_pickle.py

资料来源: examples/copy_and_pickle.py

此示例说明如何使用PICLE复制、保存和加载空间。

_images/copy_and_pickle.png

damped_rotary_spring_pointer.py

资料来源: examples/damped_rotary_spring_pointer.py

这个例子展示了一个指向或瞄准光标的箭头。

_images/damped_rotary_spring_pointer.png

deformable.py

资料来源: examples/deformable.py

这是一个关于如何将自动拼接测量用于可变形地形的示例。

_images/deformable.png

flipper.py

资料来源: examples/flipper.py

一个非常基本的Pymunk游戏。

_images/flipper.png

index_video.py

资料来源: examples/index_video.py

用于在Pymunk主页上生成徽标动画的程序。

这个程序将展示Pymunk的几个功能,如碰撞,调试绘图,根据图像自动生成形状,马达,关节和沉睡的身体。

_images/index_video.png

newtons_cradle.py

资料来源: examples/newtons_cradle.py

带有交互模式的牛顿摇篮的屏幕保护程序版本。

_images/newtons_cradle.png

planet.py

资料来源: examples/planet.py

围绕恒星运行的行星/卫星(小盒子)展示。

使用自定义速度函数手动计算重力,假设恒星在中间,质量足够大,卫星不会影响它。

这是包括在Chipmunk中的星球演示的一个端口。

_images/planet.png

platformer.py

资料来源: examples/platformer.py

展示一个非常基本的2D平台

红色女孩雪碧取自西斯杰斯特的RMXP Resources:http://untamed.wild-refuge.net/rmxpresources.php?characters

备注

这个例子的代码有点凌乱。如果您将其应用到您自己的代码中,您可能希望以不同的方式构建它。

_images/platformer.png

playground.py

资料来源: examples/playground.py

一个基本的操场。最有趣的功能是画一个形状,只要你想移动鼠标,Chipmunk就会从画中画出一个近似的多边形形状。

_images/playground.png

point_query.py

资料来源: examples/point_query.py

此示例通过突出显示鼠标指针下的形状来演示点查询。

_images/point_query.png

pygame_util_demo.py

资料来源: examples/pygame_util_demo.py

展示pymunk.pyGame_util绘图方法的输出将是什么样子。

有关与pyglet的比较,请参见pyglet_util_demo.py。

_images/pygame_util_demo.png

pyglet_util_demo.py

资料来源: examples/pyglet_util_demo.py

展示pymunk.pyglet_util绘图方法的输出将是什么样子。

请参见pyGame_util_demo.py以了解与pyGame的比较。

_images/pyglet_util_demo.png

shapes_for_draw_demos.py

资料来源: examples/shapes_for_draw_demos.py

DRAW演示的助手函数FILL_SPACE。给空间增加了很多东西。

slide_and_pinjoint.py

资料来源: examples/slide_and_pinjoint.py

L的形状,附加了一个关节,并被约束为不能倾倒。

此示例也用于快速入门教程。

_images/slide_and_pinjoint.png

spiderweb.py

资料来源: examples/spiderweb.py

一个有弹性的蜘蛛网的展示(用侏儒绘制)

可以用鼠标抓取其中一个道口

_images/spiderweb.png

tank.py

资料来源: examples/tank.py

Chipmunk之港坦克演示。展示一辆自上而下的坦克驶向鼠标,并在途中撞到障碍物。

_images/tank.png

using_sprites.py

资料来源: examples/using_sprites.py

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

_images/using_sprites.png

using_sprites_pyglet.py

资料来源: examples/using_sprites_pyglet.py

此示例是Using_sprites示例的克隆,不同之处在于它使用了pyglet而不是pyGame来展示精灵绘图。

_images/using_sprites_pyglet.png

其他示例

kivy_pymunk_demo

资料来源: additional_examples/kivy_pymunk_demo

在pymunk.org上用于介绍动画的介绍视频的基本端口。该代码在Windows和Android上都进行了测试。

请注意,它不显示Kivy最佳实践,仅以最基本的方式将INTERO_VIDEO代码转换为Kivy,以表明这是可能的,它不应该显示使用Pymunk构建Kivy应用程序的最佳方式。

_images/kivy_pymunk_demo.png

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上测试