|
|
|||||
Регистрация: Feb 2014
Сообщений: 192
|
прокрутка bitmapData
Для перемещения bitmapData используются методы scroll или copyPixel, эти методы принимают в качестве параметров числа целые (int). Т.е. если я хочу прокручивать bitmapData под определенным углом (sin, cos), то получается проблема при использовании данных методов, т.е. допустим мне за кадр надо переместить bitmapData на 1.3 пиксела по x и 1.7 пиксела по y, вместо целых чисел (int), методы будут округлять мои значения до 1 и 2 соответственно. Что можно придумать?
|
|
|||||
Регистрация: 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. Думаю будет более менее плавно. |
|
|||||
Может есть смысл для такого эффекта рисовать обычный прямоугольник (векторный), для заливки которого использовать вашу картинку. А так как заливка растром имеет настройки матрицы, то меняя эту матрицу, ваше изображение будет двигаться куда угодно с любой скоростью.
Я имею ввиду это: 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(); } Последний раз редактировалось samana; 30.06.2015 в 22:43. |
|
|||||
Регистрация: Feb 2014
Сообщений: 192
|
Очень ценный совет, спасибо samana, опять выручаешь! Почитаю про Matrix.
Dimarik советует переместить Bitmap с помощью матрицы, попробуем. (попробую метод draw() для BitmapData) Сaseyryan, bitmapData я не перемещаю, а перерисовываю со сдвигом. Последний раз редактировалось Dmitriy154; 01.07.2015 в 16:18. |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
__________________
Reality.getBounds(this); |
Часовой пояс GMT +4, время: 18:51. |
|
« Предыдущая тема | Следующая тема » |
|
|