在HTML5 Canvas游戏上有双重缓冲吗?


23

我简单的画布游戏似乎可以在Mac和Linux上的Chrome和FF上正常运行。我还没有机会在智能手机或Windows环境下对其进行测试。它不使用双缓冲,但是我已经看到一些使用它的JS Canvas示例。

什么时候建议使用双缓冲?它仅对特定的浏览器有影响吗?是否会对性能产生重大影响?

谢谢!


2
OT:这个游戏规则非常有前途,很好的工作(当然,您需要在界面上做更多的工作,有些事情尚不清楚,等等)
o0'。

确实很甜。但建议:将地图级别切换到空间以外的其他位置。有点烦人每次我的浏览器窗口滚动。
michael.bartnett 2010年

也不要使用箭头键进行转向。.我目前处于安全模式,在小屏幕上,它一直在整个位置滚动... fyi:p
Tor Valamo 2010年

我认为可以捕获键,以便浏览器窗口不作用于它们。
AttackingHobo 2010年

谢谢!A,W,D和返回工作现在也是如此。将推特发送到动量竞赛或发送电子邮件至petteri@momentumracer.com以获取更多评论或想法,这样就不会成为聊天板:-)。
Petteri Hietavirta,2010年

Answers:


15

对基于画布的游戏进行双重缓冲无疑将对性能产生影响。您将在每帧中绘制等于画布大小的额外像素。在基于画布的游戏中,在大多数情况下,绘制画布是最大的瓶颈,您希望尽可能地限制它,尤其是在移动设备上。

Chrome具有GPU加速功能(最新版本)以及邪恶的快速JavaScript引擎(V8),在移动环境中您将看不到它。即使在Chrome中,您也会通过实现双重缓冲来减慢速度。

长话短说,双重缓冲(处理“撕裂”)的好处并不值得您最有可能遭受性能打击。


1
但是,当您发现闪烁或类似的双重缓冲可能会解决此问题。回答您的问题:如果您确实发现闪烁,建议使用双缓冲。否则也没有理由。请注意,双缓冲区很容易实现或删除(以防万一您注意到性能损失大于闪烁)。
user8363 2012年


1

我注意到使用像这样的双重缓冲:

  1. 用无形的画布画出一切
  2. 将不可见的画布复制到真实的画布

实际上减慢了渲染速度(降低了fps),而不是加快了渲染速度

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.