2016-07-07 21 views
0

Ich erstelle ein Spiel, in dem ich ein Array von Objekten habe, eines der Arrays enthält alle Raketenobjekte. Bei diesem Array müssen die Raketen häufig entfernt werden, wenn sie auf Wände (oder Spieler) treffen, aber ich finde keinen Weg, das Objekt aus dem Array zu entfernen, ohne unordentlichen Code zu bekommen. Vorzugsweise würde ich einen Weg wünschen, der das Objekt innerhalb einer der Objektfunktionen entfernt, z. B. missiles.splice(this,1). Ich habe zufällig Raketen auf dem BildschirmJavascript Entfernen eines Objekts aus einer Funktion

Ein Beispiel für das Stück Code ist als

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') 
    } 
}; 

Aber, wenn ich diese verwenden folgt

verschwindet Ich habe einen Pastebin mit meinem Code in ihm (Verwendung der folgende Link kann helfen) http://pastebin.com/f5S8zhJg

Die Spielkarte ist unendlich groß, was ziemlich interessant ist.

+0

Sie die 'splice' Methode Haben überprüfen? – FDavidov

+0

Das ist, was ich in meinem Code verwende, die spezifische Zeile ist rateceCount.splice (this, 1); ist das richtig? –

+0

Ja, ich denke schon. Überprüfen Sie die Dokumentation, um 100% sicher zu sein. – FDavidov

Antwort

0

missileCount ist ein Array.

splice dauert 2 ints.

this ist eine Instanz von Raketen.

Ohne durch den Code zu waten, ich glaube, Sie wollen:

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