避免在HTML5画布上绘制半像素会提高速度吗?

避免在HTML5画布上绘制半像素会提高速度吗?,html,canvas,Html,Canvas,我正在画布元素上绘制(球的)精灵。然而,当球移动时,球的x或y位置可能会变成分数,例如(20.153;63.638)。当使用画布绘制此图像时,它尝试使用透明像素使球更准确地显示在其位置 我想知道我是否应该在画球之前使用Math.round(),以避免透明像素的东西,并且可能会大大加快游戏速度。这会有很大帮助吗?这个游戏是一个复杂的乒乓球游戏 下图应该有助于我的解释: 至少是这样。正如Gabe所提到的,这取决于实施情况 请注意,如果您使用的是常规坐标(1、14等),则某种类型的抗锯齿似乎会起作用。

我正在画布元素上绘制(球的)精灵。然而,当球移动时,球的x或y位置可能会变成分数,例如(20.153;63.638)。当使用画布绘制此图像时,它尝试使用透明像素使球更准确地显示在其位置

我想知道我是否应该在画球之前使用
Math.round()
,以避免透明像素的东西,并且可能会大大加快游戏速度。这会有很大帮助吗?这个游戏是一个复杂的乒乓球游戏

下图应该有助于我的解释:

至少是这样。正如Gabe所提到的,这取决于实施情况

请注意,如果您使用的是常规坐标(1、14等),则某种类型的抗锯齿似乎会起作用。出于这个原因,一些指南(主要)似乎建议您最好使用半像素(即1.5、14.5等)进行渲染。不过,我不知道这是否会对性能产生任何影响。至少在渲染结果上是明显的

您可能还想尝试各种分层方案。有关更多信息,请参阅。根据您的情况,您可能希望将对象视为单独的画布,甚至只在背景顶部偏移它们


或者,您可以尝试在一个画布上渲染所有内容。在这种情况下,您需要跟踪一些额外的内容。似乎可以为您处理所有簿记工作。

它的速度是否加快取决于浏览器对
画布的实现。
。您能提供玩游戏的地址吗?谢谢bebraw。我想当我完成游戏后,我会测试一下性能和视觉外观的差异。我想我还会在不同的浏览器上测试它。酷。如果你能发表你的发现那就太好了。祝你好运+1用于在单独的画布上建议精灵(甚至是带有背景的标准HTML元素)。为了获得更好的性能,请不要忘记使用类似于
var x2=x | 0
的东西来舍入坐标,而不是
Math.round
@Omiod,但这不是
round
。那是
楼层