Xex
07.11.2007, 22:05
Вот еще вопрос возник.
Пытаюсь сделать игру, в ней круочки(movieClip'ы), которые динамически создаются на сцене идут из левого края сцены в правый.
Создаются кружочки по таймеру:
function spawn(event:TimerEvent):void
{
circle = new mcCircle();
addChild(circle);
circle.name = "circle" + n;
n++;
}
Задача человека успевать убивать эти кружочки, пока они не дошли до правого края сцены(кружки стартуют с x=0 и y=random, потом просто идут влево пока их не убьют или они не дойдут до края)
Проверка попал человек в кружок или нет идет по координате Y.То есть, когда скрипт ловит CLICK, он проверяет Y-мышки и если он около Y-кружка, то кружок играет анимацию и изчезает.
Я сделал проверку и проигрыш анимации. Осталось только убрать кружок со сцены.
Проблема в том что при event'е CLICK, он проверяет все кружочки вот так:
for(i=0; i<n; i++) {
if((event.stageY > getChildByName("ctu"+i).y-40)&&(event.stageY < getChildByName("ctu"+i).y+20)&&(event.stageX + 20 > getChildByName("ctu" + i).x)) {
(getChildByName("ctu" + i) as MovieClip).play();
}
}
где n - общее кол-во кружочков.
Если просто сделать removeChild(getChildByName("ctu"+i)) то при повторной проверке он выдаст ошибку, т.к. какого-то кружочка уже нет и соответственно child'а с именем например "ctu2" тоже нет.
Единственный выход, это после того как кого-то убили, тут же переназначать все имена этих child'ов, осталось только понять как.
p.s. Может кто-нибудь прокоментировать процесс создания кружочков на сцене? Просто я не очень понимаю структуру классов, если есть какие-то замечания я был бы рад услышать как можно сделать лучше. Спасибо.
Пытаюсь сделать игру, в ней круочки(movieClip'ы), которые динамически создаются на сцене идут из левого края сцены в правый.
Создаются кружочки по таймеру:
function spawn(event:TimerEvent):void
{
circle = new mcCircle();
addChild(circle);
circle.name = "circle" + n;
n++;
}
Задача человека успевать убивать эти кружочки, пока они не дошли до правого края сцены(кружки стартуют с x=0 и y=random, потом просто идут влево пока их не убьют или они не дойдут до края)
Проверка попал человек в кружок или нет идет по координате Y.То есть, когда скрипт ловит CLICK, он проверяет Y-мышки и если он около Y-кружка, то кружок играет анимацию и изчезает.
Я сделал проверку и проигрыш анимации. Осталось только убрать кружок со сцены.
Проблема в том что при event'е CLICK, он проверяет все кружочки вот так:
for(i=0; i<n; i++) {
if((event.stageY > getChildByName("ctu"+i).y-40)&&(event.stageY < getChildByName("ctu"+i).y+20)&&(event.stageX + 20 > getChildByName("ctu" + i).x)) {
(getChildByName("ctu" + i) as MovieClip).play();
}
}
где n - общее кол-во кружочков.
Если просто сделать removeChild(getChildByName("ctu"+i)) то при повторной проверке он выдаст ошибку, т.к. какого-то кружочка уже нет и соответственно child'а с именем например "ctu2" тоже нет.
Единственный выход, это после того как кого-то убили, тут же переназначать все имена этих child'ов, осталось только понять как.
p.s. Может кто-нибудь прокоментировать процесс создания кружочков на сцене? Просто я не очень понимаю структуру классов, если есть какие-то замечания я был бы рад услышать как можно сделать лучше. Спасибо.