我正在制作一个自上而下的射击游戏,它依赖于始终旋转指向鼠标光标的头像。我实现这样的旋转:
//Rendering.
context.save(); //Save the context state, we're about to change it a lot.
context.translate(position[0] + picture.width/2, position[1] + picture.height/2); //Translate the context to the center of the image.
context.rotate(phi); //Rotate the context by the object's phi.
context.drawImage(picture.image, -picture.width/2, -picture.height/2); //Draw the image at the appropriate position (center of the image = [0, 0]).
context.restore(); //Get the state back.
当phi
为 0 时,图像以其正常质量呈现,具有锐利的边缘和可检测的像素。但是,当我将 设置phi
为非零值时(实际上,当它不是0
、Pi/2
、或时) Pi
,图像会失去其清晰度,并且无法再看到单个像素,因为它们被模糊了。Pi+Pi/2
2Pi
这是一个屏幕截图(很抱歉屏幕截图的质量一般很差,但我认为差异非常明显):
这是,嗯,有点不可接受。我不能让图像总是模糊不清!为什么会发生这种情况,我可以解决吗?