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

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

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

Регистрация: Jun 2014
Сообщений: 558
По умолчанию код управления спрайтами перевести в анимацию мувиклипов

Добрый день.
Возник вопрос, для улучшения производительности.
Например, допустим я программирую что-то типо взрыва (разлёт объектов), т.е. создаю некоторое количество спрайтов и AS3 пишу их поведение. Так же в этом коде я меняю альфу и размеры объектов, соответственно в какой-то момент это ест довольно много ресурсов. Так вот, думаю несколько оптимизировать всё это и взять отдельно "взрыв", создать из него мувиклип, наделать с 10-ток вариантов и просто использовать как обычный мувик. Это позволит полностью избавиться от неплохого куска кода. Но вот и вопрос, рисовать в ручную - не вариант, хочется плавности в теже 60 кадров/секунду. Вот и вопрос, а есть ли возможность запустить анимацию и сделать из неё мувик?

Старый 16.05.2015, 17:46
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 2  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,283
записать анимацию каким-нибудь скринграбером и вставить в новый мувиклип.Но это не путь силы.

Старый 16.05.2015, 18:04
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 3  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Это позволит полностью избавиться от неплохого куска кода
Избавление от куска кода - это не улучшение производительности. В самом мувике тоже будет много кода, который просто не виден. Главное сделать код максимально оптимизированным. При этом он не обязательно должен быть коротким.
Для этой цели лучше какой-нибудь движок частиц использовать. Если речь о простом флеше (а судя по всему это так), то можно попробовать FLINT

Старый 16.05.2015, 18:55
ZackMercury вне форума Посмотреть профиль Отправить личное сообщение для ZackMercury Найти все сообщения от ZackMercury
  № 4  
Ответить с цитированием
ZackMercury
 
Аватар для ZackMercury

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,922
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
neonoviiwolf, а в чём проблема? Создаёшь битмапдату с размерами
ширинаЖелаемогоСпрайта:высотаЖелаемогоСпрайта*кол-во кадров,
копируете в ряд снимки bitmapData.draw(), это ест ресурсы очень хорошо, поэтому лучше заранее это делать, вместе с загрузкой приложения.
затем создаёте класс, который будет наследовать битмапдату и хранить эту анимацию, и в нём каждый кадр с помощью метода copyPixels копируете кадры каждый в своё место, но только не забывайте очищать bitmapData перед копированием.

конечно, всё можно упростить до хранения массива битмапдат, но мне кажется, что первый вариант будет работать быстрей.
__________________
There is no thing in this world that is not simple.

Старый 16.05.2015, 19:05
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 5  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Да не надо этого делать. Ни copyPixels() ни draw(). Зачем что-то там копировать и очщать, когда можно просто поменять ссылку на саму битмапдату. У меня обычно спрайтовая анимация так и работает, есть кадр (Bitmap), у которого в нужный момент просто заменяется битмапдата. Работает шустро и нареканий нет

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

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,922
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
caseyryan, простите, что? не надо draw? а как же тогда собирать анимацию в клип?
__________________
There is no thing in this world that is not simple.

Старый 16.05.2015, 20:32
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 7  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
caseyryan, простите, что? не надо draw? а как же тогда собирать анимацию в клип?
Можно заранее собрать, в той же adobe flash pro, и загрузить кадры в готовом виде (я обычно так и делаю), но только кадры мне присылают)
Ну или да, разок использовать copyPixels на старте, чтобы поделить атлас на отдельные объекты bitmapData, которые потом и втыкать в кадр.
При первом подходе можно организовать асинхронную загрузку игры, с показом прогресса, и не будет подвисания при изначальной сборке анимации. Во втором, если много данных, будет временное подвисание. Но зато не нужно складывать множество картинок для отдельной загрузки

Старый 16.05.2015, 21:43
ZackMercury вне форума Посмотреть профиль Отправить личное сообщение для ZackMercury Найти все сообщения от ZackMercury
  № 8  
Ответить с цитированием
ZackMercury
 
Аватар для ZackMercury

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,922
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
caseyryan, у автора темы есть готовый код симуляции взрыва или чего-то там, он хочет просто сделать десяток анимированных спрайтов из этого кода.
__________________
There is no thing in this world that is not simple.

Старый 17.05.2015, 02:33
neonoviiwolf вне форума Посмотреть профиль Отправить личное сообщение для neonoviiwolf Найти все сообщения от neonoviiwolf
  № 9  
Ответить с цитированием
neonoviiwolf

Регистрация: Jun 2014
Сообщений: 558
ZackMercuryда-да, верно. Анимация уже есть, рандомное количество частиц разлетается в рандомное направление, при этом изменяют свои размеры и альфу, таких штук может возникать и 5 в секунду, соответственно в игрушке каждый раз неплохое количество ресурсов ЦП ест, вот и пришла идея, просто накляпать с десяток мувиков, где всё это уже зарисовано, уверен, что показать с десяток рисунков для ЦП проще, чем просчитывать каждый раз всё по новому. НО всё должно быть видно, что мувик не перекрывает. Ну как в png и jpeg, если в png что-то не закрышивать, то спрайт в том месте будет прозрачным, а если перевести в jpeg и сделать спрайт, то будет белым.
Игрушку саму пишу в FD, вот и думаю в adobe professional CC сварганить мувик, выгрузить в библиотеку и готово. Ток вот и появился вопрос, как объяснить СС, что мне вот из этой анимации надо сделать мувик в 3 секунды (180 кадров)

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

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

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


 


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


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