![]() |
Пересечение клипа с чем либо???
Есть проблема...
В сцене около 100 движущихся объектов, как отследить(по проще) пересечение любых двух... Единственное известное мне решение, в EnterFame для каждого писать цыкл на 100 HitTest-ов... очень тормозит... Есть ли какято процедурка которая проверяет пересечение клипа вообще с каким-либо другим... Если есть мысли пишите...Заранее благодарен :) |
Есть принцип разбиения поля сеткой на ячейки. В каждой ячейке может быть пара-тройка объектов. Уж проверить их столкновение друг с другом недолго и не особо напряжно.
Т.е. каждый объект смотрит, кто есть в его ячейке и проверяет с ними столкновение. |
Тоже вариант.... Спасибо
Мне интересно... т.е. процедуры "Есть ли какято процедурка которая проверяет пересечение клипа вообще с каким-либо другим..." -- НЕТ??? |
А какой формы эти объекты ?
(Кажется кто-то скоро пойдёт учить математику) |
dekcc, есть, hitTest зовется. Но она не очень…
|
Объекты могут быть любой формы...
|
апроксимируй форму внутренними клипами и проверяй хиттест с ними
|
ээээ.....что простите делать...можно чуток поподробнее
|
У тебя видимо 100 объектов и каждый проверяет 99 других итого 9900 проверок. Что очевидно излишне (т.к. получается что многие объекты проверяются дважды). Может попробывать написать внешний код, который бы отсекал повторные проверки (Например объект А проверил объект В и теперь нет нужды объекту В проверять объект А)
|
хиттест проверяет пересечение прячоугольников ограничивающих фигуру, следовательно если тебе нужно проверит пересечениие с треугольником или с чем посложнее - надо в эту фигуру засунуть прямоугольники или точки по краям которые будут проверятся на столкновение ...
|
по поводу отсечения лишнего - разкидай их по массивам - в массив помещай относительно положения в поле видимости - ну тиао ячееек о которых _etc говорил
|
Цитата:
|
Точный контур любой фигруы с ТОЧКОЙ! а не с другой фигурой
|
Да уж - это "несколько" усложнит дело :)
|
Использовать hitTest, класса BitmapData. Он проверяет попиксельно.
|
bitmapData пользуй, оно попиксельно проверяет
|
а если загнать все обекты в класс и проверять
Код:
Class.prototype.onEnterFrame = function () { |
| Часовой пояс GMT +4, время: 09:21. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.