关于我的javascript游戏中的警报功能 迷宫游戏 函数leftwards() { var元素=document.getElementById(“女孩”); element.style.left=parseInt(element.style.left)-10+'px'; } 函数向右() { var元素=document.getElementById(“女孩”); element.style.left=parseInt(element.style.left)+10+'px'; } 函数向上() { var元素=document.getElementById(“女孩”); element.style.top=parseInt(element.style.top)-10+'px'; } 函数向下() { var元素=document.getElementById(“女孩”); element.style.top=parseInt(element.style.top)+10+'px'; } 函数移动位置(事件) { 开关(event.keyCode) { 案例37: 向左(); 打破 案例39: 向右(); 打破 案例38: 向上(); 打破 案例40: 向下(); 打破 } }; 函数mazeLoop() { 如果((Math.pow)(Math.abs(top-590),2)+Math.pow(Math.abs(left-670),2)
您没有在任何地方声明关于我的javascript游戏中的警报功能 迷宫游戏 函数leftwards() { var元素=document.getElementById(“女孩”); element.style.left=parseInt(element.style.left)-10+'px'; } 函数向右() { var元素=document.getElementById(“女孩”); element.style.left=parseInt(element.style.left)+10+'px'; } 函数向上() { var元素=document.getElementById(“女孩”); element.style.top=parseInt(element.style.top)-10+'px'; } 函数向下() { var元素=document.getElementById(“女孩”); element.style.top=parseInt(element.style.top)+10+'px'; } 函数移动位置(事件) { 开关(event.keyCode) { 案例37: 向左(); 打破 案例39: 向右(); 打破 案例38: 向上(); 打破 案例40: 向下(); 打破 } }; 函数mazeLoop() { 如果((Math.pow)(Math.abs(top-590),2)+Math.pow(Math.abs(left-670),2),javascript,compiler-errors,Javascript,Compiler Errors,您没有在任何地方声明top或left。您没有看到top的这个错误的唯一原因是浏览器有一个名为top的内置全局变量(对顶级窗口的引用) 必须声明变量。在计算中使用变量之前,还必须为它们指定有意义的值 一般来说,避免使用全局语言。全局语言是一件坏事™. 例如,您不能将top用作全局变量,因为您不允许分配给它 要避免使用全局变量,请执行以下操作: 将代码包装在作用域结构中。目前,这意味着内联调用的函数表达式: <style> body{
top
或left
。您没有看到top
的这个错误的唯一原因是浏览器有一个名为top
的内置全局变量(对顶级窗口的引用)
必须声明变量。在计算中使用变量之前,还必须为它们指定有意义的值
一般来说,避免使用全局语言。全局语言是一件坏事™. 例如,您不能将top
用作全局变量,因为您不允许分配给它
要避免使用全局变量,请执行以下操作:
<style>
body{
background-color: powderblue;
font-size: 30px;}
h1{
color: #E1BEE7;
font-size: 50px;
text-align: center;
font-family: Verdana;
text-decoration: underline;}
h2{
color: #C0CA33;
font-size: 35px;
text-align: center;
position: absolute;
left: 8%;}
.button {
background-color: #C0CA33;
color: white;
padding: 8px 30px;
text-align: center;
display: inline-block;
font-size: 30px;}
.maze{
position: absolute;
width: 730px;
top: 25%;
left: 22%;}
#girl{
position: absolute;
left: 620;
right: 500;
top: 140;
bottom: auto;}
</style>
由于ES2015+的语义,最新的浏览器只允许您使用一个独立的块,但是很多浏览器仍然需要一个函数onxyz
-属性样式的事件处理程序(例如,像您的onkeyup=“moveLocation(event)”
),因为它们要求调用的函数是全局函数,而全局函数是一件坏事™. 相反,请通过addEventListener
和类似工具阅读现代事件处理(如果您必须支持IE8,请向您展示如何处理它不支持addEventListener
)如果你能通过控制台检查你的
状态,那么top
和left
的值是多少?top和left在你的脚本中不是全局声明的。添加一个观察值,在最终/生产代码中使用警报根本不是一个好做法。@VinodLouis好的,我正在和我的朋友一起检查这个问题!@sarijacobsunny ThANK也用于观察!不要试图改变全局top
的含义!@JaromandaX好的,那么我需要设置变量就像left=any值,top=any值一样吗?
function mazeLoop()
{
if((Math.pow(Math.abs(top-590),2)+Math.pow(Math.abs(left-670),2)<=900))
{
alert("DONE!");
}
else
{
moveLocation();
setTimeout("mazeLoop()",10);
}
}
<style>
body{
background-color: powderblue;
font-size: 30px;}
h1{
color: #E1BEE7;
font-size: 50px;
text-align: center;
font-family: Verdana;
text-decoration: underline;}
h2{
color: #C0CA33;
font-size: 35px;
text-align: center;
position: absolute;
left: 8%;}
.button {
background-color: #C0CA33;
color: white;
padding: 8px 30px;
text-align: center;
display: inline-block;
font-size: 30px;}
.maze{
position: absolute;
width: 730px;
top: 25%;
left: 22%;}
#girl{
position: absolute;
left: 620;
right: 500;
top: 140;
bottom: auto;}
</style>
(function() {
// Your code here
})();