Matter.js改变了颜色

11 javascript jquery html5 frontend canvas

我正在一个小项目上使用matter.js.

我正在尝试更改画布的背景颜色并向对象添加自定义颜色.

有没有人知道教程或东西的样式问题.js

Matter.js

lia*_*bru 15

属性是body.render.fillStyle,body.render.strokeStylebody.render.lineWidth.

Body.create(options)如果你正在使用工厂,你可以将这些传递给或更有可能

Bodies.rectangle(0, 0, 100, 100, {
    render: {
         fillStyle: 'red',
         strokeStyle: 'blue',
         lineWidth: 3
    }
});
Run Code Online (Sandbox Code Playgroud)

您也可以使用精灵,查看代码

如果你需要更多的渲染控制,最好克隆Render.js,自定义它并通过Engine.create(element, options)as 将它传递给引擎engine.render.controller.

  • @ user4180960确保为Render实例设置`render.options.wireframes = false`. (6认同)

okr*_*ram 8

由于没有人回答有关问题的部分

我正在尝试更改画布的背景颜色 [...]

这部分是这样完成的:

const Engine = Matter.Engine,
    Render = Matter.Render,
    World = Matter.World,
    Bodies = Matter.Bodies;

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

const render = Render.create({
  element: document.body,
  engine,
  options: {
    width: some_width,
    height: some_height,
    wireframes: false,
    background: 'rgb(255,0,0)' // or '#ff0000' or other valid color string
  }
})```
Run Code Online (Sandbox Code Playgroud)


Rap*_*nah 7

正如@Martti Laine在评论中提到的,以下代码仅适用:

Bodies.rectangle(0, 0, 100, 100, {
    render: {
         fillStyle: 'red',
         strokeStyle: 'blue',
         lineWidth: 3
    }
});
Run Code Online (Sandbox Code Playgroud)

如果render.options.wireframes设置为false.

  var render = Render.create({
    element: document.body,
    engine: engine,
    options: {
      width: window.innerWidth,
      height: window.innerHeight,
      wireframes: false // <-- important
    }
});
Run Code Online (Sandbox Code Playgroud)

  • 谢谢你!花了几个小时尝试塑造身体造型,但没有任何效果,直到我看到这个!`线框:假` (3认同)