я следующий код в моей функции обновления, которая называется 30 раз в секунду:Javascript Array.splice() ничего не делает
// Checking collision between rune and the players:
for(var j = 0; j < this.players.length; j++) {
if(this.checkCollision(this.players[j], this.runes[i])) {
this.runes[i].activate(this.players[j]);
this.runes[i].isHidden = true;
this.runes[i].onDeactivate = function() {
console.log(i);
self.runes.splice(i, 1);
}
}
}
до этого у меня есть:
for(var i = 0; i < this.runes.length; i++) ...
самость .runes.splice (i, 1) ничего не делает для массива ... i устанавливается на некоторое значение. Я просто хочу удалить неактивную руну из массива рун. Есть идеи?
Кстати, onDeactivate вызывается, я тестировал это ... –
Из явного любопытства (я точно знаю, что происходит), но что делает 'console.log (i)' показывает вам? –
это зависит от того, какую руну я беру с игроком ... например, теперь он показывает 507 ... Интересно, не является ли самосознание –