如何在Matter.js中模糊单个对象?

时间:2019-04-12 19:19:53

标签: javascript canvas matter.js

我正在尝试为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);
}

1 个答案:

答案 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
});