удаление объектов Shape с помощьюEaseljs/Canvas

Я работаю над игрой и столкнулся с проблемой: я не знаю, как удалить один объект Shape с холста/сцены. Например, в одном примере я добавляю фигуры с помощью этого кода:

var bullet = new createjs.Shape();
bullet.graphics.beginFill("white").drawRect(0, 0, playerSize/5, playerSize);
bullet.x = x+playerSize/2;
bullet.y = y-playerSize;
stage.addChild(bullet);

bullets.push(bullet);

Последняя строка добавляет объект формы в массив, поэтому я могу позже манипулировать каждым объектом (перемещая маркеры с помощью Tick)

Теперь я хочу удалить определенный объект, но я не уверен, как это сделать: я знаю, что вы можете удалять части сцены с помощью stage.removeAllChildren(), но это не то, что я хочу. У меня есть работающее обнаружение столкновений для пуль, но я не знаю, как избавиться от них на холсте, когда захочу.

Я также пробовал stage.removeChild(bullet); но это, похоже, не сработало? И как бы я использовал removeChild, если у меня есть этот объект только в массиве?

Любые предложения/комментарии приветствуются! Если я был недостаточно ясен, скажите, пожалуйста, обновить вопрос :)

Спасибо


person trainoasis    schedule 02.01.2014    source источник


Ответы (1)


Я понял; не знал, что ты можешь это сделать. Я просто использовал stage.removeChild(bullet) в цикле по всем пулям следующим образом:

stage.removeChild(bullets[i]);

Что интересно, так как я думал, что вы должны передать имя ребенка в этот метод, но, очевидно, я ошибался; вы передаете фактический объект и все.

person trainoasis    schedule 03.01.2014