Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   HitTest для дублированных мувиклипов (http://www.flasher.ru/forum/showthread.php?t=124676)

Angelinka 06.05.2009 00:56

HitTest для дублированных мувиклипов
 
Здравствуйте!
Недавно столкнулась с проблемой, которую не смогла решить. Мне очень нужно осуществить реализацию, при этом задействовав не много ресурсов компьютера, чтобы не нагружать процессор. Пожалуйста, кто может - помогите. Дело вот в чем:

В сцене есть много машинок, все они были получены посредством duplicateMovieClip. Каждому новому экземпляру машины присваивается instance name в виде car+i, где i - цифра, увеличенная на единицу после каждого дублирования. Нужно осуществить взаимодействие машинок методом hitTest. То есть если одна машина врезается в другую, (любая машина в любую другую) - происходит что-то. При этом не хочется обходить все экземпляры машин посредством:
for (var i=0; i<количество машин; i++) {} чтобы не нагружать процессор, ибо машин может быть до 300...

Пожалуйста, подскажите как можно реализовать то, что мне нужно. Большое спасибо за Ваше внимание!

mooncar 06.05.2009 01:16

300 - это не так уж много. Сложность в том, чтобы делать этот обход ежесекундно, если событие, при котором следует сделать проверку, не определено, то есть если отслеживать надо непрерывно.
Пока неясно. Слушателей вешать на каждый мувик, но насколько нагрузит процессор такое количество, надо тестировать...

Angelinka 06.05.2009 01:58

Да, вот в том то и дело. Даже не ежесекундно, а 40 раз в секунду, если fps стоит 40, как в данном случае.

mooncar 06.05.2009 02:32

Уточните, то есть все 300 машин сейчас у вас двигаются одновременно, при 40 fps, и ничего у вас не тормозит, всё вас устраивает?
Upd: увидел, что вы написали - может быть до 300. Сделайте и посмотрите, как это будет выглядеть и можно уже и о отслеживании столкновений думать.
Upd2: Я еще, конечно, имею небольшой стаж в программировании на AS, но.. если рассуждать строго, нам нужно 40 раз в секунду отслеживать возможность 300 x 300 = 90 000 событий... Задачка..

Angelinka 06.05.2009 03:08

нет. одновременно на сцене находится до 5 машин. Все машины, которые выходят за пределы документа удаляются. Но идентификаторы то продолжают расти. Таким образом, на сцене могут находится машины с именем car326 или car 143...

Vektor 06.05.2009 04:09

1) Все, машинки заносим в массив.
2) Удаляем машинку из массива, когда она за экраном.
3) Делаем проверку hitTest через массив.
4) Добавляем машинку в массив, когда она на экране.
5) Изучаем, работу с массивом.


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

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