Matter-js - 如何获得矩形的宽度和高度?

Nik*_*kic 3 matter.js

Matter-js - 如何获得矩形的宽度和高度?

我需要知道是否在 Matter-js 中实现了距离返回方法。

// part.vertices[0] and part.vertices[1]
Run Code Online (Sandbox Code Playgroud)

我想集成瓷砖选项。这就是关键部分的外观(我对 Render.bodies 使用覆盖函数,这是我最感兴趣的)。:

  for (let x = 0; x < this.tiles; x++) {

    c.drawImage(
      texture,
      texture.width * -part.render.sprite.xOffset * part.render.sprite.xScale,
      texture.height * -part.render.sprite.yOffset * part.render.sprite.yScale,
      texture.width * part.render.sprite.xScale,
      texture.height * part.render.sprite.yScale);

  }
Run Code Online (Sandbox Code Playgroud)

Jac*_*tal 8

const { min, max } = part.bounds

它将包含您需要的内容{ x, y }

只需减去max.x - min.x&max.y - min.y


Jac*_*nkr 6

我采用了与以下非常相似的解决方案:

var width = 30;
var height = 30;
var rect = Bodies.rectangle(150, 100, width, height, {density:0.01, className:"brick", width:width, height:height});

console.log(rect.className, rect.width); // "brick", 30
Run Code Online (Sandbox Code Playgroud)

我决定携带原始宽度/高度信息以及其他自定义属性,例如 className

原因是因为bounds受到任何非完美圆形物体的旋转的影响,例如。旋转矩形的边界可能比实际宽度宽约 30%。

  • 在 Typescript 中,您可以使用 &lt;any&gt; 作为 Bodies.rectangle 的第 5 个参数:`Bodies.rectangle(150, 100, width, height, &lt;any&gt;{密度:0.01, className:"brick", width:width, height:height });` 以避免输入错误。 (3认同)