相关疑难解决方法(0)

即使边界明显与其他物体相交,Matter.Query.region 也不会返回任何碰撞

我正在尝试用它来Matter.Query.region查看我的游戏中的角色是否接地。但是,当我尝试region使用我创建的边界对象(以游戏中显示的点显示)运行时,它不会出现任何碰撞,即使它明显与其他物体相交。

代码:

let Engine = Matter.Engine,
    Runner = Matter.Runner,
    World = Matter.World,
    Bodies = Matter.Bodies,
    Body = Matter.Body,
    Composite = Matter.Composite;

let engine;

let boxA;
let boxB;
let platforms = [];

function setup() {
  createCanvas(550, 400);

  // create an engine
  engine = Engine.create();

  // create two boxes and a ground
  boxA = Bodies.rectangle(275, 200, 80, 80, {
    mass: 20
  });
  platforms.push(boxA);

  boxB = Bodies.rectangle(300, 50, 80, 80, {
    mass: 20
  });
  Body.setInertia(boxB, Infinity);
  
  ground = Bodies.rectangle(250, …
Run Code Online (Sandbox Code Playgroud)

javascript p5.js matter.js

5
推荐指数
1
解决办法
300
查看次数

使用 Matter.js 渲染到 DOM 或 React

我想在 Matter.js 中将自定义 HTML 元素渲染为 Bodies。我在 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);
Run Code Online (Sandbox Code Playgroud)

VIEW那里的变量可能只是随机数,因为它们定义了形状)

但是,我无法理解如何在 Bodies 矩形内传递 HTML 元素,如上面的示例所示。

理想情况下,我希望有复杂的 HTML 元素与物理世界交互(比如带有按钮的小盒子等)。

关于如何实现这一目标有什么想法吗?或者,您能解释一下示例中使用的似乎已成功实现的方法吗?

html javascript reactjs matter.js

3
推荐指数
1
解决办法
3021
查看次数

Matter.js 矩形内的文本

我有一些用 Matter.js 创建的矩形,如下所示:Bodies.rectangle (getRandomInt (200,400), 50,140,50, {restitution: 0.7, timeScale: 0.5}) 但现在我需要在该矩形内添加文本。我怎么能这么做呢?文档对于此类操作并不清楚

javascript matter.js

2
推荐指数
1
解决办法
3346
查看次数

标签 统计

javascript ×3

matter.js ×3

html ×1

p5.js ×1

reactjs ×1