![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Sep 2012
Сообщений: 28
|
Ребята! Доброй ночи! Помогите, пожалуйста, советом начинающему AS3 кодеру. Есть задача сделать анимацию движущихся шариков, 30 штук. Эта часть уже сделана и работает. Они движутся внутри прямоугольной области. Так вот, у них при этом движении должен оставаться след, шлейф (ну типа такие же шарики, только всё с меньшим значением альфы). Как это реализовать для слушателя движении мыши я понимаю, ну почти... А вот как это сделать не для мышки, а именно для каждого такого шарика нет(. Вся физика движения шаров у меня в одном таймере. Он рендерит в цикле обновления для всего массива шариков: они там бьются об стенки, отскакивают и всё такое. Что если я сделаю к примеру так - каждый шарик это будет Sprite с двумя слоями (effectLayer и ball), первый слой - Sprite - слой для отрисовки шариков от шлейфа, а второй слой собственно Sprite-клип самого моего шарика, который будет двигаться? То есть я буду обновлять в главном таймере позиции x/y не самого шарика, а его слоя ball, в котором сама картинка шара, и в зависимости от его обновлённой позиции буду рендерить шлейф через слушатель ball.onEnterFrame...(Я бы могла это делать и в основном таймере, но любой из шаров может остановиться в любое время и шлейф должен красиво исчезнуть, плавненько так...) Я просто не знаю как это делают нормальные люди. Не повесится ли программа от такого количества onEnterFrame-ов? Есть ли какие-то более оптимальные пути выхода из такой ситуации? Помогите, пожалуйста! Даже абстрактный пример на словах очень мне поможет. Меня просто смущает, что накаждый мувик шара надо цеплять слой для анимации его шлейфа, хотя может оно так и должно быть, буду рада любой помощи.
|
|
|||||
|
Регистрация: Sep 2012
Сообщений: 28
|
Добрый день, в том-то и дело, что эффект может быть разный, ну то есть это в будущем может быть след из каких-то разлетающихся звёздочек, или плавный шлейф как из той темы по поводу битмапов и их размытия... Нужно вроде как предусмотреть это дело. Проблема в том, что я не очень понимаю, как эти все шары вместе увязать, ведь мне кроме этих их шлейфов нужно ещё и проверять, не толкнулись ли они об стенки (тогда делаю отскок в обратном направлении ну и вся такая физика их возможных столкновений). И вот ещё, там ещё должны быть эффекты взрывов(ну там я просто на сам шар цепляю готовый мувик взрыва и всё). НО! Проблема в связке с физикой этого дела. Сейчас шар - это двигающийся мувик с клипом взрыва, который запускается при клике на шар, и после шар убивается со сцены. Но как к УЖЕ двигающемся клипу привязать эффект? Я вот и подумала (но пока не тестила), может сделать вот так - объект шара это статичный на экране спрайт, у которого X/Y всегда 0, который в себе содержит слой для шарика (назовём ballSprite) и слой для эффекта (назовём trailerLayerSprite) и ещё слой для аттача мувика взрыва (explosionLayerSprite). И тогда уже в рендерере физики движения шаров я буду двигать по экрану и проверять столкновения не ball, как сейчас без всяких эффектов, а ball.getChildByName("ballSprite"). Это нормальная практика кода? Как считаете? Я имею ввиду разделение на такие слои. Или можно как-то в одном мувике/или битмапе на сцене для всех шаров сразу отрисовывать все эфффекты? Не пойму как нормальные люди выходят из таких ситуаций..
Добавлено через 5 минут Или может вот как-то так сделать - типа не создавать слои внутри класса Ball для его эффектов, а просто при его создании внутри конструктора прописать что-то типа parent.addChild('layerForEffectsOfBall' + balID)? Вот же ж задача... |
|
|||||
|
Регистрация: Jan 2013
Сообщений: 322
|
gumback, как должен выглядеть шлейф?
|
|
|||||
|
Регистрация: Sep 2012
Сообщений: 28
|
nubideus, размытый шлейф, как бы это объяснить, ну как у летящей кометы, например... Фиг его знает, в идеале чтоб можно было в любое время подменить на какой-то другой. Проблема в том, что я не могу понять, как тут лучше слои разделить - отделить физику движения шара от движения его шлейфа, вот как(((
|
|
|||||
|
Делайте на ООП в классах, как в примере, который я привел. Один эффект, шлейфа у вас уже есть. Если нужен новый эффект - просто пишите для него новый класс и все. В некоторых случаях вам просто нужно будет подменить мувик в библиотеке. А если например нужен шлейф из звездочек, на этот счет есть куча тьюториалов в инете, например этот,там можно paticles подменять своими картинками, в общем надо играться. И кстати вот еще хороший тьюториал на эту тему. В общем экспериментируйте.
|
|
|||||
|
Lorem ipsum
|
__________________
Поймай яблоко 2! |
|
|||||
|
Регистрация: Sep 2012
Сообщений: 28
|
PainKiller, Zebestov, ребята, спасибо большое! Вы меня выручили! Спасибо!!!
|
![]() |
![]() |
Часовой пояс GMT +4, время: 02:41. |
|
|
« Предыдущая тема | Следующая тема » |
|
|