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

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

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

Регистрация: Feb 2014
Сообщений: 192
Cool прокрутка bitmapData

Для перемещения bitmapData используются методы scroll или copyPixel, эти методы принимают в качестве параметров числа целые (int). Т.е. если я хочу прокручивать bitmapData под определенным углом (sin, cos), то получается проблема при использовании данных методов, т.е. допустим мне за кадр надо переместить bitmapData на 1.3 пиксела по x и 1.7 пиксела по y, вместо целых чисел (int), методы будут округлять мои значения до 1 и 2 соответственно. Что можно придумать?

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Эта проблема возникла чисто в теории? BitmapData не является дисплей объектом, и повернуть ее, ровно как и переместить нельзя.

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

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Можно перемещать сам Bitmap, в т. ч. по нецелым пикселям, точнее задавать ему произвольную матрицу трансформации.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

Регистрация: Feb 2014
Сообщений: 192
Bitmap в моем случае двигать не надо, т.к. он имеет размеры stage. BitmapData также имеет размеры stage, при движении объекта bitmapdata перемещается в обратном движению направлении, получается эффект движения, но загвоздка получается при движении объекта под углом. Если 45 градусов еще все получается, то по другим углам, как перемещать, тем более,что скорость объекта в районе 1 пиксель/кадр.
Допустим движение в пикселях по x : 1.2, по y : 0.9. Придумать такой расчет: перемещаем по x и y по 1 пикселю и каждый десятый кадр прибавляем к x 2 дополнительных пиксела (0,2*10), а из y вычитаем 1. Скорость кадров - 30. Думаю будет более менее плавно.

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

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Может есть смысл для такого эффекта рисовать обычный прямоугольник (векторный), для заливки которого использовать вашу картинку. А так как заливка растром имеет настройки матрицы, то меняя эту матрицу, ваше изображение будет двигаться куда угодно с любой скоростью.
Я имею ввиду это:
Код AS3:
public function Main() 
{
	matrix = new Matrix();
	bmd = bm.bitmapData;
	addEventListener(Event.ENTER_FRAME, enterFrame);
}
 
private function enterFrame(e:Event):void 
{
	graphics.clear();
 
	matrix.translate(0.2, 0.4);
	graphics.beginBitmapFill(bmd, matrix, true, true);
	graphics.drawRect(0, 0, 500, 200);
	graphics.endFill();
}
Fill.swf   (29.9 Кб)
Вложения
Тип файла: swf Fill.swf (29.9 Кб, 68 просмотров)


Последний раз редактировалось samana; 30.06.2015 в 22:43.
Старый 30.06.2015, 22:57
Dmitriy154 вне форума Посмотреть профиль Отправить личное сообщение для Dmitriy154 Найти все сообщения от Dmitriy154
  № 6  
Ответить с цитированием
Dmitriy154

Регистрация: Feb 2014
Сообщений: 192
Очень ценный совет, спасибо samana, опять выручаешь! Почитаю про Matrix.
Dimarik советует переместить Bitmap с помощью матрицы, попробуем. (попробую метод draw() для BitmapData)
Сaseyryan, bitmapData я не перемещаю, а перерисовываю со сдвигом.


Последний раз редактировалось Dmitriy154; 01.07.2015 в 16:18.
Старый 01.07.2015, 10:42
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 7  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
http://flasher.ru/forum/showpost.php...99&postcount=6
__________________
Reality.getBounds(this);

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

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

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


 


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


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