Во многих играх в контакте вижу следующую плюшку:
при наведении на объект (скажем дом) который находится за другим объектом (пускай дерево) выделяется дом, хотя курсор был наведен, как бы на дерево. Подскажите в какую сторону думать и куда копать, а то для гугла не могу сформулировать вопрос, а своих идей что-то совсем нет - с графикой мало опыта работы.
И еще один вопрос по смежной теме. скажем есть карта из n*n ячеек. Допустим z индекс объекта по формуле xPosMap+yPosMap*xSize. Лучшая мысль которая есть: хранить где-нить значение и полностью пересчитывать весь порядок дочерних объектов при:
добавлении нового
изменении позиции одного из детей
Может быть есть лучше идеи?
Извлечение объектов с заднего плана
Re: Извлечение объектов с заднего плана
mouseEnabled = false но это если просто....
а если изометрия(насколько я понял из описания) - то писать движок для этого.... но суть - сделать чтобы дерево, например не реагировало на наведение мыши или, например, чтобы уходило на задний план(z-сортировка) при наведении на него, если зади домик...
насчет изменения детей - пожалуй, правильно, но можно улучшить алгоритм, например, можно пересчитывать только слоя выше от текущего при каких-то ситуациях и т.д.
а если изометрия(насколько я понял из описания) - то писать движок для этого.... но суть - сделать чтобы дерево, например не реагировало на наведение мыши или, например, чтобы уходило на задний план(z-сортировка) при наведении на него, если зади домик...
насчет изменения детей - пожалуй, правильно, но можно улучшить алгоритм, например, можно пересчитывать только слоя выше от текущего при каких-то ситуациях и т.д.
Re: Извлечение объектов с заднего плана
эгегегей!
Я же говорил, что у меня очень туго с графикой?! XD
Изометрия! Вот слово которого мне не хватало для общения с гуглом!
Огромное спасибо
Я же говорил, что у меня очень туго с графикой?! XD
Изометрия! Вот слово которого мне не хватало для общения с гуглом!
Огромное спасибо
Re: Извлечение объектов с заднего плана
Доброго времени суток, задам свой вопрос здесь же...
У меня похожая ситуация, только создаются три клипа, на MouseDown`е висит функция:
Нужно чтобы когда ухватили за клип, он оказался "выше" остальных двух. Понимаю что возможно решение простое, НО пока не нашёл его )))
У меня похожая ситуация, только создаются три клипа, на MouseDown`е висит функция:
Код: Выделить всё
function stopDraging(e:MouseEvent):void { e.currentTarget.startDrag(); // e.currentTarget.z = level_Z + 1; }
Re: Извлечение объектов с заднего плана
mastaxys, решение очень простое.... их много... но самое простое - снова addChild, он при повторном вызове(если уже есть ребенок) - добавляет его поверх всех...
Код: Выделить всё
// cont - контейнер всех 3-х клиповcont.addEventListener(MouseEvent.CLICK, startDrag);cont.addEventListener(MouseEvent.CLICK, stopDrag);function startDrag(e:MouseEvent):void { // у спрайтов уже есть методы перетаскивания // ps. movieclip extends sprite var obj:Sprite = Sprite(e.target); // у родителя изменяем позицию этого объекта... // можно и так(но толку с этого нет, в данном случае addChild - идентичен) // obj.parent.setChildIndex(obj, obj.parent.numChildren-1); obj.parent.addChild(obj); obj.startDrag();}function stopDrag(e:MouseEvent):void { var obj:Sprite = Sprite(e.target); obj.stopDrag();}
Re: Извлечение объектов с заднего плана
sasha^ , спасибо... Для меня оказалась актуальной лишь одна строка :
Так что, Благодарю!
Код: Выделить всё
obj.parent.setChildIndex(obj, obj.parent.numChildren-1);