问题标签 [matter.js]

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 回答
483 浏览

javascript - 为什么我的圆圈会以一定角度从直线表面反弹?

我的世界中有一个球和两个垂直的直面。

当我对球施加力时,我希望它保持在一条直线上,但它似乎会以一个角度反弹。

小提琴:https ://jsfiddle.net/zvjvvzeL/11/

0 投票
1 回答
416 浏览

javascript - 如何检测我的球体是否撞击了另一个静态体

所以我在我的世界里创造了两个物体,一个球和一个平面。由于重力,球落到表面上并与之碰撞。

我以为我在正确的轨道上使用EventsBody.isSensor()但我似乎无法从我的事件监听器那里得到哪些身体已经碰撞,即身体名称。

草图.js

该事件被触发,但是对变量中没有任何内容。我究竟做错了什么?

同样,当我打开isSensor: true电源时,球似乎穿过了静止的物体。

JS 小提琴:https ://jsfiddle.net/qk3yLfyq/12/

0 投票
2 回答
323 浏览

javascript - 身体在低速时不遵守反射定律

我正在尝试模拟一个球在台球桌周围弹跳并且遇到了一个问题。(视图从上方俯视桌子)。

我总是希望球根据反射定律从边界反弹。Angle of incidence = angle of reflection

在此处输入图像描述

在右侧边界的模拟结束时,球似乎沿着它滚动。为什么它不遵循反射定律?

示例:https ://jsfiddle.net/5sjx7oyw/

0 投票
3 回答
1685 浏览

javascript - 问题 JS - event.pairs 数组在碰撞时为空白

我正在使用MatterJS为画布上的一些对象设置动画。在动画的某一时刻,我的两个对象之间发生了碰撞。我使用以下代码成功检测到事件:

我要确定的是哪两个物体正在碰撞。当我 console.log event.pairs 我得到一个空数组。我原以为它会返回一个由两个正在碰撞的对象组成的数组。我哪里出错了?

0 投票
1 回答
1007 浏览

javascript - 问题 JS - 无法呈现 SVG 路径

我正在使用 Matter JS,我正在尝试将我自己的 SVG 形状渲染到画布上。尽管我一直遇到错误,但在遵循他们的文档之后。这是我在网上找到的一个工作演示:

https://jsfiddle.net/gf3jLvjt/4/

您可以看到路径已正确呈现到画布上。当我尝试仅替换<path />示例中的元素或整个元素时,<svg>我在控制台中遇到错误。这是我使用自己的 SVG 但出现错误的示例:

https://jsfiddle.net/gf3jLvjt/6/

我最好的猜测是,这是由我保存 SVG 的格式引起的,但我不确定 a)这是正确的还是 b)我可以更改哪些设置来解决这个问题。

干杯

0 投票
1 回答
304 浏览

game-physics - 抑制 Matterjs 圆体上的旋转

我做了一堆圆圈,并通过将恢复设置为 0.3 来降低它们的弹性,但有时它们会疯狂地旋转,我想知道我应该改变什么来更快地抑制旋转。

0 投票
1 回答
2408 浏览

javascript - 如何用 matter.js 连续旋转身体?

我是物理引擎的新手,但要开始我设想的项目,我需要让六边形在页面中心的固定位置连续旋转。

我想我从根本上误解了物理引擎的工作原理,但是当我调用 Matter.Body.rotate(hexagon, 1); 它只是在由提供的参数 (1) 渲染时立即旋转六边形,并且不会旋转得更远。我怎样才能让它连续旋转?

这是我的代码:

请注意,已设置 setStatic,因此六边形不会掉出框架。

0 投票
1 回答
267 浏览

javascript - 如何在 Matterjs 中更新已经渲染的 Body 的颜色

我有一个已经添加到世界上的身体。我想更新颜色。

我努力了:

我怀疑我使用了错误的方法。除非我忽略了它,否则我在文档中找不到有关如何更新它的任何内容。

0 投票
0 回答
782 浏览

javascript - Matter.js - 如何将移动和鼠标交互限制在一个轴上?

使用 Matter.js,我如何将身体的运动限制在一个轴上(即只有 X 轴)?我希望能够做到这一点,因此只能在设定的边界内水平拖动身体。

我正在尝试创建一个算盘并允许用户沿着固定的条形弹珠。把它全部放出来是好的,但我这辈子都想不出如何限制这样的运动。

我尝试在珠子上方和下方设置一个固定的主体,这在一定程度上起作用,但是当我添加 MouseConstraint 时,拖动行为完全忽略了这一点,您可以直接拖动它。

我还尝试使用 beforeUpdate 事件在每个珠子被绘制之前“重置”它的 Y 值(使用 Body.setPosition)。这种方法在一定程度上有效,但是 Y 值会重新回到对齐状态,如果有意义的话,我宁愿它根本不偏离。

有没有更好的方法来完成这项任务?也许可以告诉一个身体“粘”到另一个身体上吗?这样我就可以制作我的酒吧并将珠子粘在上面。

0 投票
1 回答
360 浏览

p5.js - p5.j​​s 和 matter.js 命运之轮检测哪个元素在顶部

你好,我正在发财。我有动画工作,但试图弄清楚如何检测每个椭圆的位置,以便我可以检测到它何时处于 90 度并且指针指向它。我用来制造车轮的数据是一系列十六进制颜色。这是密码笔

这是构建轮子的函数

提前致谢