![]() |
hitTest к многим обьектам не прямоугольной формы
Такая проблема: обьекты неправильной формы (не прямоугольные) создаються duplicateMovieClip бесконечно, и другие обьекты, с которыми надо сравнивать те обьекты тоже неправильной вормы и тоже создаються duplicateMovieClip бесконечно. Т.Е. есть мувик а, который постоянно дублируется, и мувик б, который так же всё време дублируеться, и а, и б - не правильной формы. Как проверить копии мувика а ,на чтото типа hitTest к копиям б?
|
сделай 2 контейнера. В одном - все а, в другом все б. хиттесть эти 2 контейнера, как тока пересеклись, перебором узнавай какие именно. тока если очень много объектов, тормозить станет.... Хотя... Ищи в поиске по слову "коллизии" кажется, там был пример точно то что нужно.
|
обьединять не хочется, да не получится все обьекты не зависят друг от друга(и конейнеры тоже проверяться будут по прямоугольникам), а перебором уж точно не получится их имена от например 1 до бесконечности, етож dplicatemovieclip, конечно клипы удаляются при определенных условиях (если покидают экран), но некоторые до этих условий "не доходят".
|
до бесконечности вряд ли.. тормозы бы были:) почему некоторые "не доходят"?
|
они могут при движении "отражаться" от некоторых обьектов и не выходить из "рабочий области."
|
Вложений: 1
я скорее всего буду вписывать в клип б(с которым всё намного сложнее чем с а), чтоб у всех обьектов б, был hittest на обьекты а, но как все обьекты а назвать одним "обращением"?
может можно обращаться ко всем клипам с одинаковой частью имяни одной командой? и ещё эта проблема с неправильной формой не понимаю как решается. нашёл флешку в которой это решино, но декомпелировать, и посмотреть как, не удалось. |
У BitmapData более продвинутый hitTest в плане объектов с неправильной формой (и даже с альфой). Но это работает только начиная с 8-ки.
|
Жалко, у меня 7, а не можешь по подробнее описать? может куплю 8. А с исходником от 7 он будет нормально работать? Все команды от 7 работают?
|
Ну так может кто-нибудь знает как обратится к мувикам с одинаковой частью имени? И как сделать hittest, как в test.swf(который в test.zip, н а 2 поста выше...)?
|
|
это про BitmapData? Спасибо, почитаю.
|
..."как обращаться к клипам с одинаковой частью имени"...
допустим, клипы зовут _root.b1 , _root.b2 , ... e.t.c Код:
namefirst = "b" |
Спасибо попробую, а не будет тормозить с большим количеством мувиков?
|
нет, это не получается. скорее всего, дело в том, что сначала не одного мувика с таким именем нет.
вот, как я писал: может не правильно? В мувик Код:
onClipEvent (enterFrame) { |
Нельзя ли как нибудь сделать так, чтабы мувики при создании , добавляли свои имена, куда-нибудь, а потом драгие мувики делали на эти имена hittest? если можно, то как?
|
Цитата:
Код:
for (var mov in клип_в_котором_мувики) {кстати если мувики неправильной формы хиттест апроксимирует их квадратом, т е если нужно реалное столкновение надо на мувик ставить точки- детекторы |
не немного не то, все мувики в руте, мувики дулированные с мувика а, при создании записывают куда-то в список свои имена, мувики дублированные с мувика б вибят эти имена и делают на него hitTest,получается что-то типа :
Код:
if(this.hitTest("1 имя в списке") or this.hitTest("2 имя в списке")...this.hitTest("последнее имя в списке")){a=1}Такое возможно?Как? |
нашёл похожую проблему, поиск юзал не в ту сторону: юзал на hittest, а там русскими буквами, попросил там помоч. Чувствую, я эту флэшку не доделую, слишком много "запорок"...но кто поможет, с хиттестом буду очень благодарен...
|
Ну так и сделай for (var имя in _root) и он автоматом переберет все объекты в руте.
Зачем для них массив имен создавать? |
я пробовал, во первых- тормозит, во вторых- перебирает, даже те, что не надо...:(
|
значит для тех что надо создай отдельный клип и перебирай объекты только в нем. зачем держать все мувики в руте?
|
а будет перебирать все обьекты,которые существуют с данный момент, в этом мувике?
|
а ка ты думал?
будет перебирать короче : делай класс клипов которые будешь аттачить в определенный клип и делай им функцию на проверку столкновений между объектами в том же клипе - запускай проверку на он ентер фрем или на сет интервал как хош |
Спасибо попробую, просто щас исходник не со мной...
ещё одна проблема, может знаешь, можно ли хиттестить к одной линии, и если она под наклоном, не к прямоугольнику, а только к линии, и если, труе центр обьекта встаёт в ближайшую точу этой линии и движется к концу этой линии... И чтоб у этой линии если менялся угол, всё равно движется? примерно так. если точнее, мне надо сделать управляемый "похищающий" луч для НЛО =) , которым можно притягивать обьекты, и человечков...На самом деле луч- вытянутый треугольник, а та линия-идёт по центру этого луча..Не знаешь какого-нибудь решения? |
предидущие вопросы тоже про эту же игрушку. если всё получится, то игруха весёлой будет...
|
наклонная линия - будет апроксимироваться прямоугольником
что бы был хит тест рельно на линию - надо вдоль ее длинны расположить клипы-точки и проверять хит тест к ним и в центре объекта тож надо сделать клип-точкуБ вообщем все объекты не апроксимируемые квадратом надо разделять на отдельные более мелкие квадраты - это самый верный метод для работы с хит тестомб причем хит к ним проверять только после хита на их парент... |
А в 8 флэше можно сделать без этих точек?
|
Вложений: 1
Вот пример на 8-ке, с упоминаемой мною выше возможностью хиттеста с альфа каналом.
|
Обязательно посмотрю, когда восьмой флэш куплю...
|
С похищающим лучём ничего и никак не получается:( , создал новую тем, о нем..
|
Как сделать так, чтоб мувики(которые дублируются с клипа в руте) дублировались в какой-нибудь другой мувик?
|
Так можно сделать только в AS3. Поэтому надо использовать attachMovie
|
:(... Если всё будет ОК завтра, иду за восьмым флэшем...:)
|
а чем различаются attachMovie и duplicateMovieClip?
|
fromotherplanet, первый достаёт мувик из либы, второй дублирует существующий.
|
а как тогда можно использовать attachMovie вместо duplicateMovieClip
|
Точно так же, только доставать мувик из либы, а не копировать существующий.
|
А имена им даются так-же, как и при duplicateMovieClip?
|
|
Спасибо!
|
| Часовой пояс GMT +4, время: 23:21. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.