【问题标题】:html5 canvas pacman game - javascript too much recursionhtml5 canvas pacman 游戏 - javascript 太多递归
【发布时间】:2012-07-04 10:39:26
【问题描述】:

我一直在做一个有趣的小项目来定制 dale harvey 的 html5 canvas pacman 游戏 http://arandomurl.com/2010/07/25/html5-pacman.html 并同时自学一些 javascript。但是玩游戏几秒钟后它会冻结......我相信这是因为递归过多(即需要关闭某些东西?)但我的印象是游戏循环需要保持打开状态以允许连续控制以及人物的移动……正确吗?

我在 javascript 游戏中有点菜鸟,所以任何帮助都会很棒。

http://bridgestreetcollective.harmonyapp.com/pacman/?password=test

干杯

【问题讨论】:

  • 如果您发布您的代码,特别是移动功能和游戏循环,将会很有用。不过现在我会查看源代码。
  • 你可以尝试克隆他的 GitHub 存储库。
  • 你似乎在递归调用移动,我的意思是你的调用移动内部移动。这就是您的调用堆栈变得太大的原因。您应该有一个游戏循环,您可以从其中调用移动,而不是从内部调用移动。

标签: javascript html canvas recursion


【解决方案1】:

你的clone 函数搞砸了。您在某处的文档的body 元素上调用它,并且具有循环引用。您应该能够使用调试器看到这一点。请参阅How do you clone an Array of Objects in Javascript?In Javascript, when performing a deep copy, how do I avoid a cycle, due to a property being "this"?

另外,你应该never ever use Object.prototype

【讨论】:

    【解决方案2】:

    你似乎在递归调用移动,我的意思是你的调用移动内部移动。这就是您的调用堆栈变得太大的原因。

    你应该有一个游戏循环,你从中调用移动,不要从内部调用移动。

    【讨论】:

    • 干杯乔恩,非常感谢。
    猜你喜欢
    • 2015-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-07
    • 2011-01-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多