Цитата:
Сообщение от Волгоградец
Для того, чтобы отрисовать спрайт с поворотом, нужна битмапдата, большая по размеру, чем спрайт. Но я вижу, что ты поворачиваешь битмап и это у него точка регистрации находится в координатах 0, 0. Самый простой вариант - вложить эту битмапу в какой-нибудь контейнер со смещением и поворачивать этот контейнер. Правильный вариант - заюзать матрицу, что-то типа такого:
 Код AS3:
var bd:BitmapData = new BitmapData(200, 50, false, 0x000000);
var bm:Bitmap = new Bitmap(bd);
var m:Matrix = new Matrix();
m.translate(-bd.width * 0.5, - bd.height * 0.5);
m.rotate(Math.PI / 4);
m.translate(e.stageX, e.stageY);
bm.transform.matrix = m;
addChild(bm);
|
Создание матрицы в этом коде - излишество. Не обязательно это делать, так как у спрайта уже есть матрица и можно использовать ее. Т.е. при врисовке спрайта, содержащего в себе растровую картинку, достаточно добавить в качестве параметра draw матрицу, автоматически созданную для спрайта.

Код AS3:
bitmapData.draw(sprite, sprite.transform.matrix);
Она уже будет содержать необходимые настройки. Если спрайт был повернут, то и ротейт матрицы будет соответствующим