gpt4 book ai didi

javascript - 我的游戏自己玩?

转载 作者:行者123 更新时间:2023-11-28 16:20:02 25 4
gpt4 key购买 nike

我一直在用 HTML5 制作 Canvas 游戏,并且对其中的很多内容都是新手。我也想只使用 javascript 来创建我的元素(这样更容易嵌入到其他网站中,而且我觉得它更干净)。我重新加载了游戏以便再次玩,但我希望能够跟踪分数和多个其他变量,而不必将每个变量放入 URL(我一直在这样做)以使游戏看起来像是仍在继续。我还将添加“能力提升”和其他需要由脚本“记住”的内容。

无论如何,这是我的问题。当一个玩家杀死另一个玩家时,游戏会自行运行一段时间,并使我的计算机变得非常慢,直到我重新加载页面。它为什么要这样做?我清除了主函数的间隔(它循环游戏并保持所有内容运行),这用于使所有内容停止移动 - 它不再这样做。这里出了什么问题?

这是我的游戏:http://dl.dropbox.com/u/11168436/game/game.html

控制:用箭头键移动滑雪者并用M射击(你朝你最后移动的方向射击)。滑雪者用 ESDF 移动并用 Q 射击。

感谢您的宝贵时间。

最佳答案

好吧,这就是基本上发生的事情,变量间隔存在于不同的范围内。所以你试图清除一个间隔..但它不是正确的范围,所以 var interval 实际上从未被清除(而且你使用了错误的语法来清除间隔)。

<强> Working Demo

您应该了解更多有关 function scope 的信息。您在几个不同的位置有 var Interval,一个是全局的,一个是函数中的本地的。这将创建两个名为间隔的独立变量。这是一个简单的例子,

var a = 10;
function(){
var a = 1;
console.log(a);
// a will equal 1

}

console.log(a);
// a will equal 10

无论如何,我所做的修复它被声明为 interval 的全局变量,并且该变量是现在用于清除等的唯一变量。

我看到的下一个问题是你正在使用

interval = window.clearInterval(interval)

您只需调用

window.clearInterval(间隔)

这是一个很好的第一次尝试,继续学习:)。希望您理解我在工作示例中所做的事情。只需将其与您的代码进行比较,只有一些细微的差异,所有这些差异都与变量 interval

的范围有关

关于javascript - 我的游戏自己玩?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10020575/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com