|
|
|||||
Регистрация: Apr 2010
Сообщений: 97
|
Проблемы с циклом for
Подскажите, у меня цикл проверяет объекты на hitTest, но вместо всех 15 объектов, он проверяет только до первого хита. Как сделать что бы он проверил все 15?
Все элементы массива существуют! |
|
|||||
Модрон-ветеринар
|
Скобка одна лишняя фигурная.
__________________
Идите первым! |
|
|||||
Регистрация: Apr 2010
Сообщений: 97
|
случайно захватил, в полной версии там все норм!
|
|
|||||
Модрон-ветеринар
|
А как вы определили, что "только до первого хита"?
Возможно, что цикл успевает отработать один раз и проходит только один hitTest. Если у вас там процесс продолжается во времени, то и проверку надо делать непрерывную, например, в обработчике onEnterFrame. Я к тому, что в предъявленном участке кода все верно, цикл исполняется нормальное количество раз - 15, если длина массива 15. Правда в условии цикла стоило бы написать так:
__________________
Идите первым! |
|
|||||
Регистрация: Apr 2010
Сообщений: 97
|
В общем у меня вызывается функция по нажатию:
_root.skill=""; _root.magic=function(skill){ if(skill!=""){ switch(_root.skill){ case "light": _root.light=attachMovie("light","light",10000,{_x:_xmouse,_y:_ymouse}); matack(obj=mouse,dmg=10) setInterval(removeMovieClip,2000,_root.light);break; case "earth": _root.earth=attachMovie("earth","earth",10001,{_x:_xmouse,_y:_ymouse}); matack(obj=_root.earth,dmg=20) setInterval(removeMovieClip,4000,_root.earth);break; } } } function matack(obj,dmg){ sounds("thunder.wav"); for(d=mob.length-15;d<=mob.length;d++){ if(mob[d].hitTest(obj)){ mob[d].hp-=dmg; hp=20/l_green[d+200].hp; l_green[d+200]._width=mob[d].hp*hp; if(mob[d].hp<=0) { blood[num_blood]=attachMovie("blood","blood"+num_blood,num_blood,{_x:mob[d]._x,_y:mob[d]._y}); setInterval(remove,5000,obj=blood[num_blood]); num_blood+=1; mob[d].gotoAndPlay(8); mob[d].sp=0; setTimeout(remove,400,mob[d]); setTimeout(remove,400,l_green[d+200]); setTimeout(remove,400,l_red[d+100]); setTimeout(remove,600,_root.light); _root.kill+=1; _root.death+=1; _global.kill_score+=1; t_kill.text=kill; add_gold(gold=5); } } } _root.skill=""; } По нажатию клип охватывает несколько объектов, но засчитывает соприкосновение только с одним ближайшим по номеру записи в массиве объектом! Добавлено через 16 часов 27 минут Все нашел в чем ошибка, у меня obj заменялся другим значением в интервале |
Часовой пояс GMT +4, время: 18:27. |
|
« Предыдущая тема | Следующая тема » |
|
|