Форум 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=139725)

monkeymafia 09.05.2010 17:40

Идентификация экземпляров класса
 
Привет!
Создал класс block. Представляет из себя квадрат заданной ширины. Задача - сделать так, чтоб блоки падали на платформу или друг на друга, а не проваливась.

Если блок падает на платформу, он остается на месте. Реализовано это так :
Код AS3:

if (temp.hitTestObject(mcPlat) == false) 
{
      temp.fall();
}
else
{
...

где temp - это экземпляр блока, а mcPlat - это платформа.
Другими словами каждый кадр происходит проверка hitTestObject на предмет соприкосновения с платформой.

А вот реализовать соприкосновение между блоками, мне не удалось. Вот так я задаю их
Код AS3:

var temp:block;
function blockAdd():void
{
        i++;
        temp = new block(0.1,3,1.01,200,300);
        addChild(temp);
        temp.addEventListener(Event.ENTER_FRAME , blockHang);
        stage.addEventListener(KeyboardEvent.KEY_DOWN, keyPressed);
}

После того как очередной блок падает, вызывается функция blockAdd - и по новому создается очередной блок.

Вот в чем проблема...не могу применить hitTestObject одного блока к другому. Я бы хотел знать есть ли способ идентификации экземпляров класса?

Тоесть текущий блок допустим был бы temp[3], и сравнивался бы на столкновение с temp[1].

i.o. 09.05.2010 19:30

заносите все блоки в массив, а потом по массиву проходите и проверяйте столкновения

monkeymafia 09.05.2010 19:57

Да - так и пришлось сделать! Думал можно какие то индексы выдумать,чтоб не создавать лишний массив.

Спасибо за идею, дало мне понять, что я двигался в правильном направлении, а не изобрел велосипед!


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

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