Я могу заставить спрайт нормально вращаться, однако растровое изображение сильно смещается вниз и обрезает часть изображения, особенно если смотреть вниз и под любым углом.Я переключаю растровое изображение, которое часто поворачивается.Как, например, когда вы атакуете, он переключается между четырьмя атакующими изображениями.На последнем кадре изображения меч спрайтов находится наружу и направлен вперед, а центральная точка спрайтов не совпадает с исходным первым кадром, когда он не атаковал.У меня сложилось впечатление, что это не должно иметь значения, потому что оно все равно должно вращаться из центра растрового изображения, а не важно, где находится герой.Или мне нужно сбросить точку перевода или еще что-то.Но, пожалуйста, поправьте меня, если я ошибаюсь.Вот код, который я использую.Пожалуйста, порекомендуйте.
public void draw(Canvas canvas, int pointerX, int pointerY) {
// setBitmap(MainGamePanel.testIcon);
if (setRotation) {
canvas.save();
m.reset();
// get rotation for ninja based off of joystick
m.setTranslate(spriteWidth / 2, spriteHeight / 2);
m.postRotate((float) GameControls.getRotation(), spriteWidth / 2,
spriteHeight / 2);
// rotate ninja
flipedSprite = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(),
bitmap.getHeight(), m, true);
// set new bitmap to rotated ninja
setBitmap(flipedSprite);
setRotation = false;
canvas.restore();
}</p>
<code> // create the destination rectangle for the ninjas animation pointerX
// and pointerY are from the joystick moving the ninja around
destRect = new Rect(pointerX, pointerY, pointerX + spriteWidth,
pointerY + spriteHeight);
canvas.drawBitmap(bitmap, getSourceRect(), destRect, null);
}
</code>