我正在尝试为Matter.js中的游戏创建射击效果,并且我需要模糊圆圈以使其看起来更逼真。但是,我需要这样做,以使其仅使火焰模糊,而不会使整个画布模糊。我该怎么办?
这是我到目前为止的代码:
function setOnFire(object) {
var fireX = object.position.x;
var fireY = object.position.y;
var fire = Bodies.circle(fireX, fireY, vw*1, {
isStatic: true,
render: {
fillStyle: "rgba(255,130,0,1)"
}
});
World.add(world, fire);
}
答案 0 :(得分:0)
这并不是我的初衷,但它尽可能地接近。
从转到something.js开始,然后转到本部分:
for (k = body.parts.length > 1 ? 1 : 0; k < body.parts.length; k++) {
part = body.parts[k];
if (!part.render.visible)
continue;
在continue;
之后添加此代码:
if (body.bloom) {
c.shadowColor = body.render.fillStyle;
c.shadowOffsetX = 0;
c.shadowOffsetY = 0;
c.shadowBlur = body.bloom;
}
然后,转到循环的最后并添加以下内容:
if (body.bloom) {
c.shadowColor = "transparent";
c.shadowOffsetX = 0;
c.shadowOffsetY = 0;
c.shadowBlur = 0;
}
然后,只需在使自己的身体增添绽放效果即可。例如:
let fireParticle = Bodies.circle(0, 0, {
bloom: 25
});