Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何防止画布中的对象模糊?_Javascript_Animation_Canvas_Html5 Canvas - Fatal编程技术网

Javascript 如何防止画布中的对象模糊?

Javascript 如何防止画布中的对象模糊?,javascript,animation,canvas,html5-canvas,Javascript,Animation,Canvas,Html5 Canvas,目前,我正在做一个只有一个盒子和一个角色的迷你游戏 角色可以自由移动。我这样做了,它每秒移动640像素。我用来获取移动每一帧的像素的“公式”是((currentFrameTimeMs-lastFrameTimeMs)*pxPerSecond)/1000。实际值为((currentFrameTimeMs-lastFrameTimeMs)*640)/1000。这有效地使我的角色移动速度精确到640px/s 但问题是,当移动时,我认为它是“模糊的”。我已经检查了FPS,它远远高于60,但图像仍然看起来

目前,我正在做一个只有一个盒子和一个角色的迷你游戏

角色可以自由移动。我这样做了,它每秒移动640像素。我用来获取移动每一帧的像素的“公式”是
((currentFrameTimeMs-lastFrameTimeMs)*pxPerSecond)/1000
。实际值为
((currentFrameTimeMs-lastFrameTimeMs)*640)/1000
。这有效地使我的角色移动速度精确到640px/s

但问题是,当移动时,我认为它是“模糊的”。我已经检查了FPS,它远远高于60,但图像仍然看起来模糊


有什么方法可以消除这种模糊吗?我玩过桌面游戏,游戏中的物体移动非常快,而且不会模糊,所以我想这其中有一些技巧。

对结果进行取整,这样你的图像将始终处于精确的像素索引,而不是“介于”像素之间。如果不舍入,图像的像素将在像素之间“分散”,并且可能出现模糊。

问题已解决


问题是FPS,他们不到60岁。我使用了错误的方法(使用了
requestAnimationFrame
,但计算错误)。

谢谢,但它不起作用。我试过
Math.round
Math.ceil
Math.floor
,但都不管用。另外,值得注意的是,我的对象只有在运动时才变得模糊,而不是在静止时。您是否有JSFIDLE或其他东西来显示问题?我们需要更多的代码…您使用什么代码来创建/处理动画循环?顺便说一句,浏览器每秒只刷新屏幕约60次,因此如果您尝试刷新“远高于”60fps,则肯定会导致图形模糊。这确实有效。我只需要操纵我的计算公式来计算fps。干杯