Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Столкновение мувиков (http://www.flasher.ru/forum/showthread.php?t=208963)

vivado 26.09.2014 11:19

Столкновение мувиков
 
Всем привет,
Прошу помощи.

На сцене у меня несколько мувиков с классом "classA"
Загнал их в массив:
Код AS3:

var arrayA: Array = new Array();
for (var i = 0; i < numChildren; i++) {
        if (getChildAt(i) is classA) {
                arrayA.push(getChildAt(i));
        }
}

сделал им движение
хочу проверить каждый из мувиков на столкновение:
привесил на ENTER_FRAME это
Код AS3:

function EnterFr():void
{
  var i2:Number = arrayA.length;
  while (i2--)
  {
        var curSumbolA:classA=arrayA[i2];
        proverka2(curSumbolA);
  }
}

Далее пытаюсь проверить на столкновение:
Код AS3:

function proverka2(curSumbolA): void
{
        for (var i:int=0;i<arrayA.length;i++)
        {
                if (curSumbolA.hitTestObject(arrayA[i]))
                {
                        trace("пересечение");
                }
        }
}

но что-то не так, получается объекты изначально пересекаются.

samana 26.09.2014 19:24

Может они действительно изначально пересекаются?
И ещё конечно нужно добавить проверку, чтобы объект не просчитывал пересечение самим с собой.
Либо составить другой цикл, который просто не будет делать дублированных проверок. Я о том, что сейчас у вас например идёт проверка объектов 1 и 5, а потом проверка объектов 5 и 1 - что является одним и тем же.
Более подходящий вариант для данной задачи:
Код AS3:

for (var i:int = 0; i < arr.length; i++) 
{
        for (var j:int = i+1; j < arr.length; j++)
        {
                if( arr[i].hitTestObject(arr[j])) trace ("пересечение объектов", i, "и", j)
        }
}



Часовой пояс GMT +4, время: 19:18.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.