Javascript 画布上模糊的正方形。怎么办?

Javascript 画布上模糊的正方形。怎么办?,javascript,html,canvas,html5-canvas,Javascript,Html,Canvas,Html5 Canvas,为什么要在画布上模糊正方形?如果你仔细观察,你会发现图像模糊。为什么会发生这种情况?我如何修复它 确保您的x,y是整数: this.x = parseInt(this.x+this.velX); this.y = parseInt(this.y+this.velY); 确保您的x,y是整数: this.x = parseInt(this.x+this.velX); this.y = parseInt(this.y+this.velY); 确保您的x,y是整数: this.x = parseI

为什么要在画布上模糊正方形?如果你仔细观察,你会发现图像模糊。为什么会发生这种情况?我如何修复它


确保您的x,y是整数:

this.x = parseInt(this.x+this.velX);
this.y = parseInt(this.y+this.velY);

确保您的x,y是整数:

this.x = parseInt(this.x+this.velX);
this.y = parseInt(this.y+this.velY);

确保您的x,y是整数:

this.x = parseInt(this.x+this.velX);
this.y = parseInt(this.y+this.velY);

确保您的x,y是整数:

this.x = parseInt(this.x+this.velX);
this.y = parseInt(this.y+this.velY);

您应该像@markE所说的那样将对象坐标保持为整数,还可以尝试将imageSmoothing设置为false:


希望有帮助。

您应该像@markE所说的那样将对象保持为整数,并且您还可以尝试将imageSmoothing设置为false:


希望有帮助。

您应该像@markE所说的那样将对象保持为整数,并且您还可以尝试将imageSmoothing设置为false:


希望有帮助。

您应该像@markE所说的那样将对象保持为整数,并且您还可以尝试将imageSmoothing设置为false:


希望有帮助。

我建议更改绘图代码,而不是位置。如果将
paint()
函数中的行更改为:
ctx.fillRect(Math.floor(rect.x)、Math.floor(rect.y)、rect.w、rect.h),则仍然可以有分数位置,但框仍然没有抗锯齿。@zrneey肯定,听起来不错。重要的是,绘图是在整数边界上完成的。我建议更改绘图代码,而不是位置。如果将
paint()
函数中的行更改为:
ctx.fillRect(Math.floor(rect.x)、Math.floor(rect.y)、rect.w、rect.h),则仍然可以有分数位置,但框仍然没有抗锯齿。@zrneey肯定,听起来不错。重要的是,绘图是在整数边界上完成的。我建议更改绘图代码,而不是位置。如果将
paint()
函数中的行更改为:
ctx.fillRect(Math.floor(rect.x)、Math.floor(rect.y)、rect.w、rect.h),则仍然可以有分数位置,但框仍然没有抗锯齿。@zrneey肯定,听起来不错。重要的是,绘图是在整数边界上完成的。我建议更改绘图代码,而不是位置。如果将
paint()
函数中的行更改为:
ctx.fillRect(Math.floor(rect.x)、Math.floor(rect.y)、rect.w、rect.h),则仍然可以有分数位置,但框仍然没有抗锯齿。@zrneey肯定,听起来不错。重要的是,绘制是在整数边界上完成的。