Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 06.06.2010, 16:32
Avrilka вне форума Посмотреть профиль Отправить личное сообщение для Avrilka Найти все сообщения от Avrilka
  № 1  
Ответить с цитированием
Avrilka

Регистрация: Jun 2010
Адрес: A(undefined,undefined)
Сообщений: 87
Записей в блоге: 2
The bomb! hitTest Многих объектов

Люди помогите!

Вот допустим у меня есть 100 обьектов 1ого типа а1, а2, а3 ... а100 и 100 объектов второго типа б1, б2, б3, .. б100.

Вопрос: как узнать что б1, б2, б3 ...б100 столкнулись с любым из объектов а.

Неустраивающий код:
Код AS1/AS2:
onClipEvent(enterFrame) {
    for(i=1; i<=100; i++) {
        if(this.hitTest(_root['a'+i])) {
            trace('Столкнулись!')
        }
    }
}
Он не устраивает потому что жрет много памяти.

Помогите плиз


Последний раз редактировалось udaaff; 06.06.2010 в 18:24.
Старый 06.06.2010, 18:19
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 2  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Код AS1/AS2:
this.onEnterFrame = function() {
for(var i=1; i<100; i++) {
   if(_root["b"+i].hitTest(_root["a"+i]) { trace("сталкнулись заразы")}
}}
В этом случае 1=1;
А если надо проверять ВАЩЕ любой a клип без разницы. То сначала нужно создать клип контейнер для мини клипов(100) и проверять хиттест через контейнер


Последний раз редактировалось in4core; 06.06.2010 в 18:23.
Старый 06.06.2010, 18:25
Avrilka вне форума Посмотреть профиль Отправить личное сообщение для Avrilka Найти все сообщения от Avrilka
  № 3  
Ответить с цитированием
Avrilka

Регистрация: Jun 2010
Адрес: A(undefined,undefined)
Сообщений: 87
Записей в блоге: 2
Так прикол в том что перебор много памяти жрет! Подругому никак? Без цикла?

Старый 06.06.2010, 19:03
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 4  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Попробуй сделать 2 контейнера. в 1м а клипы в другом б клипы. И проверяй только хиттесты для контейнеров

Старый 06.06.2010, 20:36
Avrilka вне форума Посмотреть профиль Отправить личное сообщение для Avrilka Найти все сообщения от Avrilka
  № 5  
Ответить с цитированием
Avrilka

Регистрация: Jun 2010
Адрес: A(undefined,undefined)
Сообщений: 87
Записей в блоге: 2
тоже не выход! а если у меня движение хаотическое?
2 контейнера в таком случае всегда будут перекрываться. нет... другого выхода нету?

Старый 07.06.2010, 00:33
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 6  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Да хоть супер хаотичное) Контейнеры эластичны

Старый 07.06.2010, 17:54
Avrilka вне форума Посмотреть профиль Отправить личное сообщение для Avrilka Найти все сообщения от Avrilka
  № 7  
Ответить с цитированием
Avrilka

Регистрация: Jun 2010
Адрес: A(undefined,undefined)
Сообщений: 87
Записей в блоге: 2
всмысле? если не сложно можешь сделать fla и скинуть? просто очень нужно! Контейнер как я понимаю - другой муви клип в котором напиханы объекты?

Старый 07.06.2010, 18:36
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 8  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
ну типа того. Но ваще конечно интрефрейм тока. А что за тема у вас? Не ужто снег или феерверк делаете?))))

Старый 07.06.2010, 19:04
Avrilka вне форума Посмотреть профиль Отправить личное сообщение для Avrilka Найти все сообщения от Avrilka
  № 9  
Ответить с цитированием
Avrilka

Регистрация: Jun 2010
Адрес: A(undefined,undefined)
Сообщений: 87
Записей в блоге: 2
да нет ... что то вроде товер дефенса. Генерится куча крипов и куча бюлетов ...

Старый 08.06.2010, 00:21
NoCD вне форума Посмотреть профиль Отправить личное сообщение для NoCD Найти все сообщения от NoCD
  № 10  
Ответить с цитированием
NoCD
 
Аватар для NoCD

Регистрация: Jan 2006
Адрес: Novosibirsk
Сообщений: 353
для решения этой задачи, самый простой способ, это сократить количество юнитов.
Если по сложнее, то нужно написать легкий и правильный алгоритм. например на основе fps. то есть вместо каждых 30 кадров в секунду проверять несколько раз. и не пачкой по 200 юнитов в цикле, а хотя бы по 20.

Создать новую тему Ответ Часовой пояс GMT +4, время: 13:55.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
hittest
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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