android中的旋转帮助

时间:2011-03-20 04:22:40

标签: android rotation translate-animation

我能够让精灵旋转好,但是位图会向下移动很多并且会切断一些图像,尤其是向下看和任何角度时。我正在切换旋转很多的位图。例如,当你攻击它时,它会在四个攻击图像之间切换。在图像的最后一帧上,精灵剑向外并指向前方,精灵中心点与原始第一帧不同时没有攻击。我认为这应该无关紧要,因为它仍然应该从位图的中心旋转而不管英雄在哪里。或者我是否需要重置翻译点或其他内容。但如果我错了,请纠正我。这是我正在使用的代码。请指教。

  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();
        }

// 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); }

1 个答案:

答案 0 :(得分:0)

我通过将原始图像放大一点来修复它,以便为旋转提供更多空间。虽然不是最好的解决方案,但对我有用。