Я нашел несколько хороших ресурсов для поворота растрового изображения в Android здесь и в других местах сети.Я близок к тому, чтобы заставить мой код работать, но, видимо, я не совсем понимаю, как работают Matrix Translations.Ниже приведены три основные функции из моего класса спрайтов.Они прекрасно работали до того, как я добавил вещи для облегчения вращения матрицы (а именно в onDraw я назвал рисование только с x, y и без матрицы).Я написал тестовый код, чтобы добавить спрайт, и несколько раз повернуть его от 0 до 360 и снова вернуться к 0.Это приводит к тому, что он вращается вокруг своей орбиты в нечетной точке.На самом деле я хочу, чтобы он просто сидел и вращался:
public void Rotate_Sprite(int transform, int deg)
{
int spriteCenterX = x+(width/2);
int spriteCenterY = y+(height/2);
mMatrix.setRotate(deg, spriteCenterX, spriteCenterY);
}
public void Draw_Sprite(Canvas c) {
//c.drawBitmap(images[curr_frame], x, y, null); //this worked great esp in move sprite
c.drawBitmap(images[curr_frame], mMatrix, null);
}
public void Create_Sprite(blah blah) {
...
...
mMatrix = new Matrix();
mMatrix.reset();
}
public int Move_Sprite() {
//with the matrix stuff, I assume I need a translate. But it does't work right
//for me at all.
int lastx=this.x;
int lasty=this.y;
this.x+=this.vx;
this.y+=this.vy;
mMatrix.postTranslate(lastX-x,lastY-y); //doesn't work at all
}
Я нашел эту J2me как ссылку здесь. Хотя кажется, что все мои спрайты, которые я вызываю, вращаются на орбитевокруг одной точки.