Javascript 防止代码发生,直到
我正在尝试制作一个游戏,但我的角色可以在标题屏幕上移动(如果我使用键移动他,然后按“Javascript 防止代码发生,直到,javascript,jquery,html,Javascript,Jquery,Html,我正在尝试制作一个游戏,但我的角色可以在标题屏幕上移动(如果我使用键移动他,然后按“Play”,角色将被移动到其他位置)。我认为应该创建一个名为“CanMove”的变量,将其设置为false,当我按下“Play”按钮时,最终将其设置为true。然而,我不知道我做错了什么。我将此代码一直放在文档末尾(但仍在$(文档).ready部分): 你看,当我按下按钮时,我将canMove设置为true(虽然按钮的代码在我粘贴在这里的代码之上),但它仍然无法工作。我认为这是因为文档在加载后已经检查了canMo
Play
”,角色将被移动到其他位置)。我认为应该创建一个名为“CanMove
”的变量,将其设置为false,当我按下“Play
”按钮时,最终将其设置为true。然而,我不知道我做错了什么。我将此代码一直放在文档末尾(但仍在$(文档).ready
部分):
你看,当我按下按钮时,我将canMove设置为true(虽然按钮的代码在我粘贴在这里的代码之上),但它仍然无法工作。我认为这是因为文档在加载后已经检查了canMove是否为true或false,如果在加载后将其设置为true或false,则没有什么区别。我不知道如何改变这一点,所以我非常感谢任何帮助
PS:我还希望能够防止角色在游戏后期移动(即在文本框等过程中)将
if
置于按键下的处理程序中。这样,文档将始终检测密钥,但仅在设置了canMove
时才响应密钥
关于“我不知道我做错了什么”。。。是的,您可以这样做,您可以在代码下面的段落中完美地描述它:您在开始时只测试一次canMove
,并根据这一点决定是否设置keydown
处理程序。如果不进行设置,文档将不再侦听按键(除非您也从代码中的其他地方进行设置);如果您这样做,那么它将永远监听按键(除非您在代码中的其他地方删除处理程序)
if (canMove === true) {
$(document).keydown(function(key) {
switch(parseInt(key.which,10)) {
case 65: //if LEFT direction pressed down:
walkLeft();
break;
case 83: //if DOWN direction pressed down:
$('#character').animate({top: "+=18px"}, 0.1);
rightCharacter()
changeRightCharacter();
break;
case 87: //if UP direction pressed down:
jumpUp();
break;
case 68: //if RIGHT direction pressed down:
walkRight();
break;
default:
break;
}
});
}