我有一些我调整大小的精灵(好吧,实现的自定义类Sprite
,但无论如何)。AndEngine 从中心调整图像大小,这使得放置在 0,0 的图像不再出现在 0,0。为了解决这个问题,我申请了
sprite.setScaleCenterX(0);
sprite.setScaleCenterY(0);
这会将图像放置在我想要的位置。但是,现在当我旋转图像时,图像会四处移动(如果图像是一个普通的正方形,旋转它应该不会产生明显的变化)。为了解决这个问题,我申请了
sprite.setRotationCenterX((sprite.getWidth() * sprite.getScaleX()) / 2);
sprite.setRotationCenterY((sprite.getHeight() * sprite.getScaleY()) / 2);
(出于某种原因,调整 a 的大小Sprite
不会改变精灵的尺寸,只会改变视觉图像,因此将其乘以比例)。然而,这并没有纠正问题,而只是改变了图像在翻转时移动到的位置。
我的数学在这里吗?这不会使图像的旋转居中以使图像不移动位置吗?还是我还缺少其他东西?
以下是完整代码:
Sprite sprite = new Sprite(0, 0, singleTrackTR, getVertexBufferObjectManager());
sprite.setScale(scaleX, scaleY);
sprite.setScaleCenterX(0);
sprite.setScaleCenterY(0);
sprite.setRotationCenterX((sprite.getWidth() * sprite.getScaleX()) / 2);
sprite.setRotationCenterY((sprite.getHeight() * sprite.getScaleY()) / 2);