Javascript 从函数中删除对象

Javascript removing an object from a function

本文关键字:删除 对象 函数 Javascript      更新时间:2023-09-26

我正在创建一个游戏,其中我有一个对象数组,其中一个数组容纳所有导弹对象。这个阵列需要经常从导弹中移除导弹,因为它们撞到墙壁(或玩家),但我似乎找不到一种方法来从阵列中删除对象而不会得到混乱的代码。最好我想要一种方法,从其中一个对象函数中删除对象,例如missiles.splice(this,1).

这段代码的示例如下

Missiles.prototype.Draw = function () {
    if (this.x >= -200) {
        ctx.beginPath();
        ctx.fillStyle = "Black";
        ctx.rect(this.x,this.y,this.width,this.height);
        ctx.stroke();
        ctx.fill();
    } else {
        missileCount.splice(this,1);
        console.log('removed a missile')
    }
};

但是,当我使用它时,屏幕上的随机导弹消失了

我有一个包含我的代码的粘贴(使用以下链接可能会有所帮助)http://pastebin.com/f5S8zhJg

游戏地图的大小是无限的,这很有趣。

missileCount是一个

数组。

splice需要 2 个整数。

this是导弹的一个实例。

在不涉足您的代码的情况下,我认为您想要:

missleCount.splice(missleCount.indexOf(this),1);