Форум 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)
-   -   Пересечение клипа с чем либо??? (http://www.flasher.ru/forum/showthread.php?t=90507)

dekcc 12.01.2007 15:23

Пересечение клипа с чем либо???
 
Есть проблема...
В сцене около 100 движущихся объектов, как отследить(по проще) пересечение любых двух...
Единственное известное мне решение, в EnterFame для каждого писать
цыкл на 100 HitTest-ов... очень тормозит...
Есть ли какято процедурка которая проверяет пересечение клипа
вообще с каким-либо другим...

Если есть мысли пишите...Заранее благодарен :)

etc 12.01.2007 15:26

Есть принцип разбиения поля сеткой на ячейки. В каждой ячейке может быть пара-тройка объектов. Уж проверить их столкновение друг с другом недолго и не особо напряжно.
Т.е. каждый объект смотрит, кто есть в его ячейке и проверяет с ними столкновение.

dekcc 12.01.2007 15:39

Тоже вариант.... Спасибо
Мне интересно... т.е. процедуры
"Есть ли какято процедурка которая проверяет пересечение клипа
вообще с каким-либо другим..." -- НЕТ???

miramax 12.01.2007 15:42

А какой формы эти объекты ?
(Кажется кто-то скоро пойдёт учить математику)

etc 12.01.2007 15:43

dekcc, есть, hitTest зовется. Но она не очень…

dekcc 12.01.2007 15:44

Объекты могут быть любой формы...

KorsaRUS 12.01.2007 15:50

апроксимируй форму внутренними клипами и проверяй хиттест с ними

dekcc 12.01.2007 15:53

ээээ.....что простите делать...можно чуток поподробнее

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
хиттест проверяет пересечение прячоугольников ограничивающих фигуру...

Там же два варианта: либо прямоугольник, либо точный контур (любой!) фигуры

KorsaRUS 12.01.2007 16:25

Точный контур любой фигруы с ТОЧКОЙ! а не с другой фигурой

chingachgoog 12.01.2007 17:02

Да уж - это "несколько" усложнит дело :)

iNils 12.01.2007 19:14

Использовать hitTest, класса BitmapData. Он проверяет попиксельно.

relevance4 12.01.2007 20:02

bitmapData пользуй, оно попиксельно проверяет

Скрипун 12.01.2007 23:45

а если загнать все обекты в класс и проверять
Код:

Class.prototype.onEnterFrame = function () {
for (var i=0;i<hghjj;i++) {
this.hitTest(arr[i]);
}
}

это как то увеличивает скорость или то же самое только по другому записано?


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

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