PDA

Просмотр полной версии : КАк перехватить событие столкновения и счетчик?


Gary
29.08.2003, 11:27
Задам еще раз вопрос, абстрактнее:
Как перехватить событие столкновения и при этом увеличить счетчик или уменьшить?
Mc2.onEnterFrame=function(){
if(this.hitTest(Mc)){
counter++
//или counter=counter+1
}}
дает постоянный прирост. Если так:

Mc2.onEnterFrame=function(){
if(this.hitTest(Mc)){
if(!flag){
counter++
//или counter=counter+1
flag=true}
}}
тоже- нет. Растет непрерывно (enterFrame).
Каунтер в руте конечно. Не получается через return прекратить выполнение до слудующего столкновения!
Как все-таки? Я же предлагаю что-то, на просто спрашиваю. Мастера оживите :)!

Пушистик
29.08.2003, 13:49
function checkTest() {
if (this.hitTest(Mc)) {
counter++;
clearInterval(int);
}
}
int=setInterval(function(){checkTest()},1);

Пушистик
29.08.2003, 14:00
ваще для отлова событий есть специальная штука!
вот отлов соприкосновения mc1 и mc2:

counter = 0;
hit = {};
ASBroadcaster.initialize(hit);
hit.addListener(_root);
function checkTest() {
if (mc1.hitTest(mc2)) {
clearInterval(int);
hit.broadcastMessage("onHitTest");
}
}
int = setInterval(function () { checkTest();}, 1);
_root.onHitTest = function() {
counter++;
trace(counter);
};

major
29.08.2003, 14:23
Что-то я не понял в чем проблема и к чему такие навароты

Пушистик
29.08.2003, 14:28
ну кому как больше нравиЦЦа...мне лично через asbradcaster надежнее всего!

Gary
29.08.2003, 16:40
Пушистик, я прямо расстрооился - интревал же верно! Но однако надо опытным путем подбирать его (скорость движения объектов влияет). А второй вариант - да силен.

Major, Спасибо, работает. И смешно: я в той же гамме (точно), сделал почти то же сам уже :)
Спаисибо!