Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 16.01.2015, 05:08
gumback вне форума Посмотреть профиль Отправить личное сообщение для gumback Найти все сообщения от gumback
  № 1  
Ответить с цитированием
gumback

Регистрация: Sep 2012
Сообщений: 28
По умолчанию Шлейфы одновременно у многих объектов

Ребята! Доброй ночи! Помогите, пожалуйста, советом начинающему AS3 кодеру. Есть задача сделать анимацию движущихся шариков, 30 штук. Эта часть уже сделана и работает. Они движутся внутри прямоугольной области. Так вот, у них при этом движении должен оставаться след, шлейф (ну типа такие же шарики, только всё с меньшим значением альфы). Как это реализовать для слушателя движении мыши я понимаю, ну почти... А вот как это сделать не для мышки, а именно для каждого такого шарика нет(. Вся физика движения шаров у меня в одном таймере. Он рендерит в цикле обновления для всего массива шариков: они там бьются об стенки, отскакивают и всё такое. Что если я сделаю к примеру так - каждый шарик это будет Sprite с двумя слоями (effectLayer и ball), первый слой - Sprite - слой для отрисовки шариков от шлейфа, а второй слой собственно Sprite-клип самого моего шарика, который будет двигаться? То есть я буду обновлять в главном таймере позиции x/y не самого шарика, а его слоя ball, в котором сама картинка шара, и в зависимости от его обновлённой позиции буду рендерить шлейф через слушатель ball.onEnterFrame...(Я бы могла это делать и в основном таймере, но любой из шаров может остановиться в любое время и шлейф должен красиво исчезнуть, плавненько так...) Я просто не знаю как это делают нормальные люди. Не повесится ли программа от такого количества onEnterFrame-ов? Есть ли какие-то более оптимальные пути выхода из такой ситуации? Помогите, пожалуйста! Даже абстрактный пример на словах очень мне поможет. Меня просто смущает, что накаждый мувик шара надо цеплять слой для анимации его шлейфа, хотя может оно так и должно быть, буду рада любой помощи.

Старый 16.01.2015, 13:58
PainKiller вне форума Посмотреть профиль Отправить личное сообщение для PainKiller Найти все сообщения от PainKiller
  № 2  
Ответить с цитированием
PainKiller
 
Аватар для PainKiller

блогер
Регистрация: Sep 2011
Адрес: Москва
Сообщений: 533
Записей в блоге: 4
Немного не понял какой именно эффект вам нужен, вот пример темы, где описывается создание эффекта шлейфа у шариков. Ну а дальше нужна конкретика, что не получается как должно выглядеть и т.д.

Старый 16.01.2015, 15:59
gumback вне форума Посмотреть профиль Отправить личное сообщение для gumback Найти все сообщения от gumback
  № 3  
Ответить с цитированием
gumback

Регистрация: Sep 2012
Сообщений: 28
Добрый день, в том-то и дело, что эффект может быть разный, ну то есть это в будущем может быть след из каких-то разлетающихся звёздочек, или плавный шлейф как из той темы по поводу битмапов и их размытия... Нужно вроде как предусмотреть это дело. Проблема в том, что я не очень понимаю, как эти все шары вместе увязать, ведь мне кроме этих их шлейфов нужно ещё и проверять, не толкнулись ли они об стенки (тогда делаю отскок в обратном направлении ну и вся такая физика их возможных столкновений). И вот ещё, там ещё должны быть эффекты взрывов(ну там я просто на сам шар цепляю готовый мувик взрыва и всё). НО! Проблема в связке с физикой этого дела. Сейчас шар - это двигающийся мувик с клипом взрыва, который запускается при клике на шар, и после шар убивается со сцены. Но как к УЖЕ двигающемся клипу привязать эффект? Я вот и подумала (но пока не тестила), может сделать вот так - объект шара это статичный на экране спрайт, у которого X/Y всегда 0, который в себе содержит слой для шарика (назовём ballSprite) и слой для эффекта (назовём trailerLayerSprite) и ещё слой для аттача мувика взрыва (explosionLayerSprite). И тогда уже в рендерере физики движения шаров я буду двигать по экрану и проверять столкновения не ball, как сейчас без всяких эффектов, а ball.getChildByName("ballSprite"). Это нормальная практика кода? Как считаете? Я имею ввиду разделение на такие слои. Или можно как-то в одном мувике/или битмапе на сцене для всех шаров сразу отрисовывать все эфффекты? Не пойму как нормальные люди выходят из таких ситуаций..

Добавлено через 5 минут
Или может вот как-то так сделать - типа не создавать слои внутри класса Ball для его эффектов, а просто при его создании внутри конструктора прописать что-то типа parent.addChild('layerForEffectsOfBall' + balID)? Вот же ж задача...

Старый 16.01.2015, 16:44
nubideus вне форума Посмотреть профиль Отправить личное сообщение для nubideus Найти все сообщения от nubideus
  № 4  
Ответить с цитированием
nubideus

Регистрация: Jan 2013
Сообщений: 322
gumback, как должен выглядеть шлейф?

Старый 16.01.2015, 16:58
gumback вне форума Посмотреть профиль Отправить личное сообщение для gumback Найти все сообщения от gumback
  № 5  
Ответить с цитированием
gumback

Регистрация: Sep 2012
Сообщений: 28
nubideus, размытый шлейф, как бы это объяснить, ну как у летящей кометы, например... Фиг его знает, в идеале чтоб можно было в любое время подменить на какой-то другой. Проблема в том, что я не могу понять, как тут лучше слои разделить - отделить физику движения шара от движения его шлейфа, вот как(((

Старый 16.01.2015, 17:59
PainKiller вне форума Посмотреть профиль Отправить личное сообщение для PainKiller Найти все сообщения от PainKiller
  № 6  
Ответить с цитированием
PainKiller
 
Аватар для PainKiller

блогер
Регистрация: Sep 2011
Адрес: Москва
Сообщений: 533
Записей в блоге: 4
Делайте на ООП в классах, как в примере, который я привел. Один эффект, шлейфа у вас уже есть. Если нужен новый эффект - просто пишите для него новый класс и все. В некоторых случаях вам просто нужно будет подменить мувик в библиотеке. А если например нужен шлейф из звездочек, на этот счет есть куча тьюториалов в инете, например этот,там можно paticles подменять своими картинками, в общем надо играться. И кстати вот еще хороший тьюториал на эту тему. В общем экспериментируйте.

Старый 16.01.2015, 19:13
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 7  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Вот тут примерчик накатал, для общего понимания.
trailExample.swf   (2.2 Кб)
Вложения
Тип файла: swf trailExample.swf (2.2 Кб, 279 просмотров)
Тип файла: zip trailExample.zip (5.8 Кб, 84 просмотров)
__________________
Поймай яблоко 2!

Старый 16.01.2015, 20:17
gumback вне форума Посмотреть профиль Отправить личное сообщение для gumback Найти все сообщения от gumback
  № 8  
Ответить с цитированием
gumback

Регистрация: Sep 2012
Сообщений: 28
PainKiller, Zebestov, ребята, спасибо большое! Вы меня выручили! Спасибо!!!

Создать новую тему Ответ Часовой пояс GMT +4, время: 02:42.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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