如何从我的数组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);
}
});
}
注意: 是的,我知道我的代码中的通知拼写错误。我只是继续故意拼写错误,直到这部分代码完成。然后我会找到 - 将其替换为正确的拼写。
答案 0 :(得分:0)
非常需要帮助。我找到了解决方案。
我只是将这段代码添加到我的游戏循环中:
notafications = notafications.filter(function notafication(I) {
return I.active;
});
希望这对未来的某个人有用。