Просмотр полной версии : Пересечение клипа с чем либо???
Есть проблема...
В сцене около 100 движущихся объектов, как отследить(по проще) пересечение любых двух...
Единственное известное мне решение, в EnterFame для каждого писать
цыкл на 100 HitTest-ов... очень тормозит...
Есть ли какято процедурка которая проверяет пересечение клипа
вообще с каким-либо другим...
Если есть мысли пишите...Заранее благодарен :)
Есть принцип разбиения поля сеткой на ячейки. В каждой ячейке может быть пара-тройка объектов. Уж проверить их столкновение друг с другом недолго и не особо напряжно.
Т.е. каждый объект смотрит, кто есть в его ячейке и проверяет с ними столкновение.
Тоже вариант.... Спасибо
Мне интересно... т.е. процедуры
"Есть ли какято процедурка которая проверяет пересечение клипа
вообще с каким-либо другим..." -- НЕТ???
А какой формы эти объекты ?
(Кажется кто-то скоро пойдёт учить математику)
dekcc, есть, hitTest зовется. Но она не очень…
Объекты могут быть любой формы...
KorsaRUS
12.01.2007, 15:50
апроксимируй форму внутренними клипами и проверяй хиттест с ними
ээээ.....что простите делать...можно чуток поподробнее
chingachgoog
12.01.2007, 15:57
У тебя видимо 100 объектов и каждый проверяет 99 других итого 9900 проверок. Что очевидно излишне (т.к. получается что многие объекты проверяются дважды). Может попробывать написать внешний код, который бы отсекал повторные проверки (Например объект А проверил объект В и теперь нет нужды объекту В проверять объект А)
KorsaRUS
12.01.2007, 15:59
хиттест проверяет пересечение прячоугольников ограничивающих фигуру, следовательно если тебе нужно проверит пересечениие с треугольником или с чем посложнее - надо в эту фигуру засунуть прямоугольники или точки по краям которые будут проверятся на столкновение ...
KorsaRUS
12.01.2007, 16:02
по поводу отсечения лишнего - разкидай их по массивам - в массив помещай относительно положения в поле видимости - ну тиао ячееек о которых _etc говорил
chingachgoog
12.01.2007, 16:13
хиттест проверяет пересечение прячоугольников ограничивающих фигуру...
Там же два варианта: либо прямоугольник, либо точный контур (любой!) фигуры
KorsaRUS
12.01.2007, 16:25
Точный контур любой фигруы с ТОЧКОЙ! а не с другой фигурой
chingachgoog
12.01.2007, 17:02
Да уж - это "несколько" усложнит дело :)
Использовать hitTest, класса BitmapData. Он проверяет попиксельно.
relevance4
12.01.2007, 20:02
bitmapData пользуй, оно попиксельно проверяет
а если загнать все обекты в класс и проверять
Class.prototype.onEnterFrame = function () {
for (var i=0;i<hghjj;i++) {
this.hitTest(arr[i]);
}
}
это как то увеличивает скорость или то же самое только по другому записано?
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.