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

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

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

Регистрация: Jul 2009
Сообщений: 48
По умолчанию Копирование графики из объекта в объект

Объясните пожалуйста как скопировать графику из одного объекта в другой.

Исходные данные:
Делаю маленькую игрушку - по столу ползают тараканы, а игрок курсором-тапком их давит. Фон стола - MovieClip, состоящий нескольких спрайтов разных столов. Таракан - тоже MovieClip, состоящий из спрайтов анимации бега и кровавых пятен .
Игрок шмякает таракана, он перестает бегать и оставляет за собой кровавое пятно. Поскольку я начинающий флешер, делалось все просто и тупо. MovieClip таракана прокручивается до пятна с кровью и ВУАЛЯ!.

НО:
Не тут-то было! После определенного момента игра начинает жутко тормозить, понимаю, что тормозят пятна от тараканов. Их-то никто не удалял. Друг подсказал, что я могу просто копировать пятна на спрайт стола сверху с помощью BitmapData.draw(). После нескольких часов поиска на выходе получилось несколько НЕДО-графических редакторов, но задача не решена. Помогите пожалуйста.

Старый 07.01.2010, 23:42
VVall вне форума Посмотреть профиль Отправить личное сообщение для VVall Найти все сообщения от VVall
  № 2  
Ответить с цитированием
VVall

Регистрация: Feb 2009
Сообщений: 1,195
Создаёте BitmapData размером в стол, кладёте в фоновый спрайт. Сначала рисуете в неё (методом draw) начальную графику стола. Потом, по мере необходимости, дорисовываете туда точно так же пятна. Что именно из этого у вас не получается?

Старый 07.01.2010, 23:44
Zik. вне форума Посмотреть профиль Отправить личное сообщение для Zik. Найти все сообщения от Zik.
  № 3  
Ответить с цитированием
Zik.
 
Аватар для Zik.

Регистрация: Nov 2007
Сообщений: 1,724
Что-то типа примера
Код AS3:
var bmpData:BitmapData(800, 600); //нужный размер пятна
var bmp:Bitmap=new Bitmap(bmpData);
bmpData.draw(); //в скобках главный контейнер
addChild(bmp);
Потом ставите на нужное место и все

Старый 07.01.2010, 23:49
VVall вне форума Посмотреть профиль Отправить личное сообщение для VVall Найти все сообщения от VVall
  № 4  
Ответить с цитированием
VVall

Регистрация: Feb 2009
Сообщений: 1,195
Цитата:
Сообщение от ZIK68 Посмотреть сообщение
Что-то типа примера
Но именно так делать не нужно, будет та же самая проблема с тормозами из-за увеличения количества объектов со временем. Код из примера нужно выполнить только один раз, отрисовав туда стол. А дальше делать только draw пятен в эту BitmapData, не создавая и не добавляя новую.

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

Регистрация: Jul 2009
Сообщений: 48
Спасибо большое.
А есть возможность запихнуть готовую картинку обратно в MovieClip стола(то есть рисовать не в новом объекте Bitmap, а в конкретном фрейме MovieClip)?
И еще одно. Как позиционировать копируемый рисунок(таракана) в исходном(стола), насколько я вижу там нет паметров x,y, rotation, а есть какой-то matrix

Старый 08.01.2010, 00:05
VVall вне форума Посмотреть профиль Отправить личное сообщение для VVall Найти все сообщения от VVall
  № 6  
Ответить с цитированием
VVall

Регистрация: Feb 2009
Сообщений: 1,195
Код AS3:
var matrix:Matrix=new Matrix();
matrix.translate(x,y);
bmpData.draw(объект,matrix);

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

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

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


 


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


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