我正在使用Java/Slick 2D来玩图形并使用鼠标旋转图像。发生了一些奇怪的事情:图像不一定要面对鼠标。与正常线条成45度角,但距离越远,距离越远。见下面的图片(白色圆圈是鼠标,该文本为角): 为什么我的图像偏离中心?
这里是我使用的旋转代码:
int mX = Mouse.getX();
int mY = HEIGHT - Mouse.getY();
int pX = sprite.x;
int pY = sprite.y;
int tempY, tempX;
double mAng, pAng = sprite.angle;
double angRotate=0;
if(mX!=pX){
mAng = Math.toDegrees(Math.atan2(mY - pY, mX - pX));
if(mAng==0 && mX<=pX)
mAng=180;
}
else{
if(mY>pY)
mAng=90;
else
mAng=270;
}
sprite.angle = mAng;
sprite.image.setRotation((float) mAng);
任何想法是怎么回事?我假设它与图像坐标来自左上角的事实有关,但我不知道如何对付它。 FYI:屏幕640x460,图像128x128,并在窗口居中。
编辑:不幸的是,没有真正的工作。下面是一些更多的信息图片:
EDIT2:找到了答案!不得不改变:INT PX/PY = sprite.x/y以
int pX = sprite.x+sprite.image.getWidth()/2;
int pY = sprite.y+sprite.image.getHeight()/2;