问题标签 [pymunk]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
53 浏览

pymunk - 如何更改pymunk中的约束大小?

我发现了如何更改约束的颜色:

但是在绘制小对象时,约束的大小显得太大,看起来很糟糕。
在此处输入图像描述

有没有办法减小这些销接头的尺寸?而不是 5 像素的半径,我更喜欢 1 或 2 像素半径关节/约束。

另一种方法是使其部分透明,但向颜色添加 alpha 分量似乎不起作用。

0 投票
1 回答
83 浏览

chipmunk - Does Chipmunk/Pymumk have culling of objects that are outside screen boundary?

I found culling only under spatial hashing for collisions. I'm referring to the kind of backface culling performed by 3D graphics libraries, where anything that need not be visible isn't rendered.

Does Chipmunk2D/Pymunk have any provision for not drawing objects that are not within screen bounds or does that user have to implement it themselves?
For example:
enter image description here

The red rectangle is the screen boundary. All blue objects should get drawn because they are within the screen. Green objects shouldn't be drawn.

I was hoping debug_draw() would have a culling functionality.

ps: btw, if I don't use debug_draw() for drawing, what is the other way of drawing? I don't see a draw() or release_draw() function. So would the user have to write code to individually iterate all objects and draw them? I guess that'd work fine because then the user can do a rectangle intersection test and decide which objects to cull. Perhaps debug_draw could be renamed to drawAll().

0 投票
1 回答
686 浏览

python - 如何检索 pymunk.Circle 的坐标?

我是 python 新手,所以如果我错误地命名了 pygame 对象,请原谅我。我的任务是构建一个虚拟弹球游戏机。当球从窗户落下时,我无法获得球的坐标。我需要坐标来跟踪分数并重置循环,以便用户可以在它触底后放下另一个球。

这是我的源代码。

这是我想添加该功能的特定代码:

我想将球坐标打印到终端,以便添加得分和重新启动功能。我觉得我错过了一个非常简单的解决方案。

截屏

0 投票
1 回答
68 浏览

python - DEAP 中的 PyGame/PyMunk 评估问题

这似乎是最奇怪的事情,但是我在这里束手无策。我有一个 PyGame/PyMunk 模拟(计划运行 2 秒的简单 BouncyBall 演示)。我将它连接到 DEAP 以尝试优化线路布局,以最大限度地增加屏幕上最后的球数。

第一代似乎运行良好(并且在预期的时间内),但是任何剩余的代都只是飞过。

我正在打印invalid_ind列表并且那里有内容,但是 pygame 似乎只是不想在第一代之后重新运行。

这里是否发生了某种低级优化?我不希望 10 代 * 50 个人 * 2 秒评估的 DEAP 运行会立即运行,所以我很困惑。

这是我的DEAP 代码

这是我的BouncyBall 代码

它们在第 1 代中很好地连接在一起,但除此之外的任何东西都会过去。

0 投票
1 回答
171 浏览

python - 是否有环境变量可以禁用 PyMunk/Chipmunk 打印`Loading chipmunk for Linux`

我正在尝试在子进程中运行 PyMunk 模拟并从管道中获取浮点返回值,但是每次运行模拟时,我都会遇到一条Loading chipmunk for Linux (64bit) [/home/user/.local/lib/python3.7/site-packages/pymunk/libchipmunk.so消息。

我已经用 禁用了 PyGame 加载消息os.environ['PYGAME_HIDE_SUPPORT_PROMPT'] = '1',但是我在 PyMunk 中找不到类似变量的文档。

我想避免使用我需要的输出写入文件,因为它只是我需要获得的一个浮点数。

0 投票
1 回答
582 浏览

python - 如何在pymunk中更改形状的颜色?

我正在尝试使用带有 pyglet 的 pymunk 创建形状。但我面临一个问题,我无法改变 pymunk 形状的颜色。他们没有任何这样的属性。

我在 pymunk.pyglet_utils.DrawOptions 中尝试过 draw_polygon,但没有结果。它们是干什么用的?

0 投票
1 回答
358 浏览

python - 向目标扔球的遗传算法

我想使用 Pymunk 生成一种遗传算法,其目的是向目标扔球。

我知道如何做大部分遗传算法的事情,但 Pymunk 对我来说是新的。这个想法是球将从一个固定的位置开始,比如离地1.5m,水平距离篮筐20m。假设球重1公斤。然后,球将以一定的角度以一定的力发射。适应度将是它在飞行过程中最接近目标中心的位置。

因此,例如,人口中的一个人可能看起来像[10.0, 5.0]10.0 表示水平应用 10N,而 5.0 表示垂直应用 5N。

我不希望它在我能看到的窗口中运行每个模拟,但我希望能够打开它,这样我就可以在一定数量的世代后或达到一定的适应度后为最适合的个体运行它等级。这是我的意思https://prnt.sc/pn1hoc的直观表示。

我已经尽力使用 pymunk 文档自己解决它,但我没有发现它很有帮助,所以我相当卡住了。

我所知道的是我需要启动一个空间

然后在那个空间创造一个球

虽然这个球会开始下落,但不知道如何让它静态开始。

然后生成目标我应该做类似的事情

我真的很感谢一些帮助,以便我可以从我的遗传算法中运行模拟,但也可以切换它们以在窗口中运行。

谢谢。

编辑:

我已经弄清楚了如何放置地板,这是我到目前为止的所有代码

0 投票
1 回答
448 浏览

python - Pymunk/Chipmunk2d - 动态物体与静态物体碰撞产生碰撞脉冲

简单的问题,但找不到答案:

静态物体可以对动态物体施加碰撞脉冲吗?

这是我的代码所做的一些记录

如您所见,两个动态三角形相互碰撞,并被静态线停止。但是,这种行为不是我想要的。如果我只有一个三角形,它只会在一个顶点上滑下壁架-> 静态物体不会对三角形施加任何形式的扭矩或反作用力(我不是物理学家)。

这是否意味着我应该只使用质量非常高的动态物体作为障碍物?我使用静态的理由是,我计划在我的模拟中设置很多障碍物,动态物体会撞到它们。使用动态物体构建整个环境是否可行?我错过了什么?

顺便说一句,我正在使用 pymunk 和 pygame。感谢我能得到的任何帮助

0 投票
1 回答
147 浏览

python - 尝试使用 create_box 添加一个框,未知值错误

我正在尝试在空间中添加一个框,这就是我所拥有的:

我收到以下错误:

如果我没有在 中添加正文space.add,我不会收到错误消息,但是它的行为不正常。

它似乎p[ ]是一个顶点,但由于我使用的是create_box,所以我没有指定任何顶点。

我对 pymunk 很陌生,而且对 python 也很陌生,所以它可能很简单,但我已经使用了几个小时并且无法破解它。

0 投票
1 回答
53 浏览

python - 在 Python 中使用 pymunk 和 pygame 实现内置 GUI?

我正在寻找一个 python 程序,其中我可以有一个侧边栏 GUI 以及它右侧的交互式 2d pymunk 工作区,该工作区将停靠在同一框架内。

有谁知道我如何实现这个?