Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   обнаружение класса (http://www.flasher.ru/forum/showthread.php?t=148871)

ЗлОй ПрОграММер 13.01.2011 12:51

обнаружение класса
 
Есть два класса, как сделать так чтобы если экземпляр первого класса попадал в зону видимости второго класса, то выводились бы его координаты(зона видимости радиус)

КорДум 13.01.2011 13:54

Так простая математика.
Код AS3:

var dx:int = mc2.x - mc1.x;
var dy:int = mc2.y - mc1.y;
 
if (Math.sqrt(dx*dx + dy*dy) < 15) {
        trace(mc1.x, mc1.y);
}

Все это по enterFrame проверяется или по таймеру, как угодно.

passertm 13.01.2011 14:14

А что за клас?
Он круглый, квадратный? Вероятнее всего придется сделать хит тестом если он сложной формы или форма меняется.

ЗлОй ПрОграММер 13.01.2011 14:30

класс сложной формы, насчёт хит теста почитаю.
КорДум, а как быть если имена экземпляров неизвестны ?
канешно можно вбить все экземпляры в массив и проверять их по очереди(находятся ли они в зоне видимости), а нет другого способа ?

КорДум 13.01.2011 14:32

Цитата:

КорДум, а как быть если имена экземпляров неизвестны ?
Тогда вы неправильно проектируете код ;)
Вам поможет метод сетки. Прочтите вот здесь: http://www.flasher.ru/forum/showthread.php?t=83431

ЗлОй ПрОграММер 13.01.2011 14:41

а как сделать такой класс который бы показывал какие экземпляры и каких классов находяться на сцене и сколько их ?? это помогло б мне написать свой код, статью почитаю)

КорДум 13.01.2011 14:45

При создании объекта закидывайте его в массив. При уничтожении - убивайте запись о нем из массива. Ну можете оформить это дело в класс, скажем, DispatcherObject с паблик методами добавления и удаления.

ЗлОй ПрОграММер 13.01.2011 14:46

за статью спасибо, как раз похожую игру пытаюсь сделать ))

Nemez 13.01.2011 15:00

Цитата:

Сообщение от passertm (Сообщение 964296)
Вероятнее всего придется сделать хит тестом если он сложной формы или форма меняется.

По-моему, hitTestObject реагирует как раз на прямоугольник, в который вписана фигура любой сложности.

passertm 13.01.2011 15:15

Я с ним давно работал. Но кажется мне там есть параметр который указывает реагировать на прямоугольник или именно в фигуру.

Вот подумалось. все обьекты с которыми нужно проверить касание можно собрать в один спрайт и проверять HitTest с этим спрайтом. но думаю стоит посмотреть в линке который дал КорДум.
Думаю там есть более практичные решения.


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

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