答案 0 :(得分:14)
属性为body.render.fillStyle
,body.render.strokeStyle
和body.render.lineWidth
。
如果您正在使用工厂,则可以将这些传递给Body.create(options)
或更多
Bodies.rectangle(0, 0, 100, 100, {
render: {
fillStyle: 'red',
strokeStyle: 'blue',
lineWidth: 3
}
});
您也可以使用精灵,请参阅the code
如果您需要更多渲染控制,最好克隆Render.js,自定义它并通过Engine.create(element, options)
engine.render.controller
将其传递到引擎中。
答案 1 :(得分:6)
正如@Martti Laine在评论中提到的,以下代码只能起作用:
Bodies.rectangle(0, 0, 100, 100, {
render: {
fillStyle: 'red',
strokeStyle: 'blue',
lineWidth: 3
}
});
如果render.options.wireframes
设置为false
。
var render = Render.create({
element: document.body,
engine: engine,
options: {
width: window.innerWidth,
height: window.innerHeight,
wireframes: false // <-- important
}
});
答案 2 :(得分:2)
由于没有人回答有关
的部分问题我正在尝试更改画布的背景颜色[...]
该部分是这样完成的:
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
}
})```