【问题标题】:Html5 Flickering JavascriptHtml5 闪烁的 Javascript
【发布时间】:2011-12-25 11:34:52
【问题描述】:

我正在开发一个基本的 javascript 游戏。我不使用 jQuery。问题是我很难摆脱闪烁。我注意到这是由于画布清除命令而发生的。我读了很多建议,建议使用一种双缓冲,比如有一个我应该在其上绘制的不可见的缓冲画布和另一个可见的画布,并且所有内容都是从缓冲区复制的。但是,我怀疑即使我实现了这个,我仍然会闪烁,因为我仍然必须清除可见的画布。

最后一个问题是:消除代码中闪烁的最佳方法是什么?感谢您的帮助。

这是我的代码示例:

http://edumax.org.ro/extra/new/Scratch.html

【问题讨论】:

  • 我没有看到任何闪烁;只是“True”一词和 Apple 标志的一部分。它应该做什么?
  • 请张贴游戏本身的链接:没有这个我们无能为力。链接到的示例中没有代码。
  • 我之前在画布上玩耍时注意到,作为动画的一部分清除画布会导致这种行为。也许您可以尝试在对象移动的位置上“涂上”白色?
  • 转到页面源代码并在
  • 和游戏它假设在用户按键上移动,尝试使用箭头

标签: javascript html buffering


【解决方案1】:

在您的draw() 方法中,您调用loadImages(),因此每次重绘时(即每次苹果移动时)都会加载图像,因此会闪烁。

只要在你的 draw 方法中设置一些断点,一切都会变得非常清晰。

我猜你想要做的是在加载时加载图像然后只是绘制......不需要每一步都加载。

【讨论】:

  • 你的答案是天才!谢谢!现在效果很好。我刚刚开始使用 javascripting 并使用 html5,但我仍然无法理解这些方法的工作原理。我以为你有那种固定的方式来插入我在所有网站上都能找到的图片。
  • @Vlad Otrocol 欢迎您。我自己对使用画布不是很熟悉,也不能说太多,但如果你刚刚开始使用这种东西,请确保充分利用浏览器中的调试器,使用断点并进行大量日志记录这将为您节省大量时间。看看它在 Chrome 中是如何工作的code.google.com/chrome/extensions/tut_debugging.html
猜你喜欢
  • 1970-01-01
  • 2011-08-06
  • 1970-01-01
  • 2014-11-26
  • 1970-01-01
  • 2021-01-10
  • 2013-08-27
  • 2013-10-29
  • 2017-01-15
相关资源
最近更新 更多