Форум 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)
-   -   Как сделать hitTest для дубликатов? (http://www.flasher.ru/forum/showthread.php?t=98873)

Edeisys 23.07.2007 21:03

Как сделать hitTest для дубликатов?
 
Господа! И дамы :)
Я многократно продублировал мувик с именем kirpich и всем дубликатам дал одинаковое имя - kirpich.
Код:

duplicateMovieClip(kirpich, "kirpich"+i, i);       
setProperty(_root["kirpich"+i], _x, some_x);
setProperty(_root["kirpich"+i], _y, some_y);
setProperty(_root["kirpich"+i], _name, "kirpich");

А другому мувику велел реагировать на hitTest с этим kirpich`ом.
Но он hitTest`ится только с оригинальным исходным kirpich`ом а дубликаты с таким же именем не замечает. Гат.
Как-то это можно исправить?

CorC 24.07.2007 10:06

1. при дублировании каждому добавлять свойства для хиттеста
2. написать класс, расширяющий мувиклип и присобачить его к кирпичу :)
3. написать код в мувике кирпича, тогда все дети получат его.

Edeisys 24.07.2007 20:25

Дыкть я пробовал в кирпиче код на hitTest прописывать.
Но у меня этих кирпичей до 350 штук будет появляться. Компутер не потянет все их одновременно на столкновение со вторым мувиком проверять. Вот я и хотел дать всем кирпичам одинаковое имя, чтобы другой мувик с любым кирпичом действовал. Написал в нём

Код:

if (_root.kirpich.hitTest(this._x, this._y, true)) {
bla_bla_bla;
}

но это не работает.
Штоли hitTest проверяется не по _name , а по какому-то другому скрытому имени?
А про классы я не разумею :)

VovkaMorkovka 24.07.2007 20:46

Цитата:

А про классы я не разумею :)
А Вы уразумейте про классы - другого выхода нет ;)
Смотрите, у вас - же кирпичи небось прямоугольной формы, и если и движутся то в пределах некоторой ограниченной области.
Пихаете в массив эти самые кирпичи, потом берете координаты Вашего мувиклипа и проверяете на столкновение с объектом не хит тестом(хиттест ненадежен), а с использованием несложных знаний геометрии прямоугольника оси которого параллальны осям координат ;). Причем проверяете не все, а только те, которые входят в область. Если все вышеозначенное слишком тяжко - конкретизируйте задачу, поробую помочь

Edeisys 24.07.2007 22:06

Конкретизирую задачу :)
У меня кирпичи на сцену разбрасываются в случайном порядке и стоят. А мувик будет между ними двигаться и через них проходить не должен.
А получается вот так вот:
Исходник zip 13 кб.

CorC 25.07.2007 10:02

Так, как вы написали, код будет пытаться хиттестится только с 1 кирпичом. Нужно из кирпича хиттестить шарик, или чего там...

VovkaMorkovka 25.07.2007 12:54

Цитата:

Сообщение от Edeisys
Конкретизирую задачу :)

Конкретизируй еще:
1) Кирпичи одного размера всегда, или потом ты хочешь добавить еще другие кирпичи?
2) Кирпичи могут в будущем налезать друг на друга или не могут?

VovkaMorkovka 25.07.2007 13:02

Цитата:

Сообщение от CorC
Нужно из кирпича хиттестить шарик, или чего там...

Если из кирпича хиттестить шарик, то получится то - же количество итераций как и из шарика хиттестить каждый кирпич.
Нужно определять позицию шарика и хиттестить только те кирпичи которые попадают в область окружающую шарик

Edeisys 25.07.2007 18:04

Я решыл задачу покашто так:
Сделал вспомогательный мувик kladka и в него с помощью attachMovie добавил kirpich`и. Теперь шарик я hitTest`ю со всей кладкой - работает как надо. Но появилась новая проблема. Я для неё новую тему создал:
Не работает onLoad


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

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