我希望能够在Matter.js中将自定义HTML元素渲染为物体。我正在使用React,这增加了一些复杂性,但与我的问题无关。
我已经进行了大量搜索,唯一找到的示例是这个,它似乎使用
看起来实现这一功能的部分是以下内容:
我已经进行了大量搜索,唯一找到的示例是这个,它似乎使用
querySelector
选择存在于HTML代码中的元素,然后以某种方式在矩形形状内使用它们。看起来实现这一功能的部分是以下内容:
var bodiesDom = document.querySelectorAll('.block');
var bodies = [];
for (var i = 0, l = bodiesDom.length; i < l; i++) {
var body = Bodies.rectangle(
VIEW.centerX,
20,
VIEW.width*bodiesDom[i].offsetWidth/window.innerWidth,
VIEW.height*bodiesDom[i].offsetHeight/window.innerHeight
);
bodiesDom[i].id = body.id;
bodies.push(body);
}
World.add(engine.world, bodies);
(这里的VIEW
变量可能只是随机数字,因为它们定义了形状)
然而,我不知道如何将HTML元素传递到上述示例中Bodies矩形内部。
理想情况下,我希望有复杂的HTML元素与物理世界互动(例如具有按钮的小框等)。
有任何关于如何实现这一点的想法吗?或者,您能解释一下似乎已经成功实现的示例中使用的方法吗?