![]() |
Имя клипа по координатам
Всем привет! Можно ли как-то узнать имя клипа по известным координатам?
|
может _droptarget поможет?
хотя это будет как-то через... |
hittest тебе поможет
Вложений: 1
втотебе примерчик показывающий как обнаруживать какие клипы находятся в данной координате...
он лишь набросок. но суть я думаю будет ясна... перебираешь все клипы в нужном объекте и для всех их проверяешь hitTest(x,y,1) где X и Y - нижная координата. это конечно несколько грубо, ну а оптимизация лежит на тебе... ;) |
И когда ты успел столько написать...
Спасибо, попробую разобраться. |
ты не поверишь...
на все ушло аж 5 минут...
особенно сложно было вырисовывать примеры клипов!!! :D :D :D :D сам код определения там 4 строки! for (t in _root) { if (_root[t].hitTest(x, y, 1) and t != "lines") { trace(_root[t]); }} я исключаю клип "lines" потому что он вспомогательный. |
Совершенно неоптимально.
Лучше хранить матрицу координат клипов и по ней определять имя. Многомерный массив... А. |
ну ну...
вы собсно товариСЧ о чем говорите? :confused:
какие координаты в массив загнать? :confused: МНогомерный массив говорите оптимальнее??? :confused: ну, а если клипы двигаются, добавляются/удаляются, масштабируются... вы наверное в enterFrame будете обновлять многомерный массив? ;) и тут же проверку проводить на ... кстати на что? как вы проверите попадает ли точка с указанными координатами на тело клипа? А заполнять массив как планируете? :D :D :D предлагаю вам слегка напрячЬся и сделать примерчик! Чтобы осмыслить то, что вы написали... :rolleyes: |
Все зависит от конкретной задачи.
Если MovieClip-ы одинакового размера, то их координатные области известны. Создаем матрицу, накладываем ее на сцену и перемещаем координаты в сцене и поинтер в массиве. Если хотим получить клип в заданной области, берем из массива имя этого клипа :) Если клипы произвольной формы и размера, опять же используем разбиение экрана на подобласти для их обработки тем же hitTest-ом, чтобы не сканировать все MovieClip-ы... Чего тут не понятного. А. |
а если на пальцах то...
я тебе задал целую кучу вопросов...
ответь на них.. и где пример? теория это здорово, давай реализацию на многомерных массивах! простой такой пример! ;) |
Re: а если на пальцах то...
Вложений: 1
Цитата:
Держите небольшой примерчик. Если немного усовершенствовать, получится вообще конфетка ;) А. PS. Мужички, ну зачем на понт брать, неужели трудно собственной головой подумать, скриптики пописать... Отрываете от работы старого программиста... :rolleyes: |
гм...
Цитата:
что это? старый программист говоришь или кондитер? ;) (добрая шутка) это подойдет пожалуй если делать игрушку Puzzle или Пятнашки... кто говорил, что объекты одинаковых размеров и очертаний? кроме этой основной причины по которой твой скрипт ПОЛНОСТЬЮ не подходит есть еще несколько причин, таких как: - он не позволяет находиться в одной области нескольким объектам (если ты конечно не введешь 3-е измерение); - он абсолютно статичен!!! Нет конечно можно ввести функцию апдейта для элементов массива, но тогда теряется вся задумка - "сделал раз, ем и сейчас" не так ли? Короче как я понял заявление: Цитата:
;) Цитата дня: Возраст программиста не влияет на его уровень. |
Простите, я не любитель писать длинные петиции, но...
Все же деление экрана на подобласти есть хороший способ оптимизации. Как я уже говорил, все зависит от конкретной задачи. К тому же Вам следовало подумать чуточек глубже. Причем здесь Puzzle или Пятнашки, возмем усовершенствованный вариант: - У нас есть подобласти, в каждой из которых известны клипы, т.е. для перебора hitTest-ом остаются только те, которые видны в данной подобласти... По моему этого достаточно. С уважением, А. |
в общем ладно...
я частично согласен, что оптимизация штука полезная и ваш метод в некоторых случаях будет весьма полезен, однако в данном топике мне кажется это не совсем подходящий способ...
Цезарю - Цезарево, а кесарю - кесарево(сечение)! |
Цитата:
А. |
Жаль, что я программист начинающий, я бы с ходу разобрался что к чему, а так я только челюсть подбираю, когда ваши письма читаю. Короче, мне нужно как-то выловить момент окончания игры, когда все пазлы на своих местах. Причем вариантов сборки может быть несколько, но это позже. Первичная задача - при определенной комбинации сообщить игроку, что он отмучался, game over. Мне кажется, что координатная матрица будет в самый раз для моей задачи, но пока еще не могу уложить у себя в мозговой матрице что к чему. Сейчас засяду в ночь, может, к утру что-то и прояснится. Все равно спасибо!
|
а почему бы не ломом!
напрямую то биш, тебе надо-то 10х10, ну мож чуть побольше или меньше, но в любом случае, о тормозах и речи быть неможет. так что можно просто проверять for(){}-ом да и немучатся, около ста значений - это не тормоза! |
Про матрицу
Я, вот, тут зачитался вашими перепитиями. Хотел бы тоже поделиться своим опытом в работе с массивами, их динамическом обновлении и определении местарасположения муви клипа.
В общем, я сейчас пишу тетрис и там я придумал следующий вариант: все клетки тетриса представляют собой двумерный массив (x,y) - тип boolean. Если в клетке есть кубик truefalsearray[xpositionindex][ypositionindex]=true. При нажатии на клавишу "left","right","rotate" проверяется возможность такого действия обращением к этому массиву. Когда кубик достигает стоп-точки, он копируется в виде составляющих его кубиков-элементов, а сам он удаляется. В общем происходит подмена. onEnterFrame изменяет только xpositionindex и ypositionindex. Проверка массива идёт только при нажатии на клавиши. Обновление массива происходит только по достижении кубиком стоп-точки. Фактически месторасположение мс мне нужно, поэтому моё добавление только так, про динамическое обновление и проверку массивов. Похоже FlashMX отлично с этим спровляется, потому что проверка массива при вращении кубика и его перемещении осуществляется очень быстро и совсем не подтормаживает как тетрис, который можно найти здесь http://194.109.142.146/games/photoblocks/pblocks.swf |
красивый тетрис!
Вложений: 1
Молоток, приятно сделан тетрис!
Кстати, по поводу пазлов... тут одна бывшая русская, а теперь немка просила ей помочь сделать пазлик... дык я ей слабал скелетик минут за 40... вот он посмотри, мож чего пригодицца... |
| Часовой пояс GMT +4, время: 04:51. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.