修剪数组中的对象,其中“I.active = false”

时间:2012-02-10 05:46:30

标签: javascript arrays html5-canvas

如何从我的数组notafications中删除I.active = false

中的任何对象

澄清: 我基本上试图让数组中的某个对象“标记自己删除”一旦它执行它所需要的。

我使用以下代码将参数推送到数组:

notafications.push(notafication({
    font: "60px pong",
    baseline: "top",
    align: "left",
    color: "#FFFFFF",
    text: "this is a test",
    x: 100,
    y: 100
}));

然后这个函数对它做了逻辑巫术:

function notafication(I) {
I.active = true;
I.render = true;
I.count = 3;
I.flashTimer = setInterval(function() {
    if (!pingpong.paused) {
        I.count--;
        if (I.count%2 == 1) {
            I.render = true;
        }
        else {
            I.render = false;
        }
        if (I.count == 0) {
            clearInterval(I.flashTimer);
            I.render = false;
            I.active = false;
        }
    }
},750);
return I;
}

最后,这是我的游戏循环的通知呈现段。

if (render.notafication) {
    notafications.forEach(function notafication(I) {
        ctx.font = I.font;
        ctx.textAlign = I.align;
        ctx.textBaseline = I.baseline;
        ctx.fillStyle = I.color;
        if (I.render) {
            ctx.fillText(I.text,I.x,I.y);
        }
    });
}

注意: 是的,我知道我的代码中的通知拼写错误。我只是继续故意拼写错误,直到这部分代码完成。然后我会找到 - 将其替换为正确的拼写。

1 个答案:

答案 0 :(得分:0)

非常需要帮助。我找到了解决方案。

我只是将这段代码添加到我的游戏循环中:

notafications = notafications.filter(function notafication(I) {
    return I.active;
});

希望这对未来的某个人有用。