我正在进行一场pacman游戏。如果你曾经玩过它,你就会知道,当pacman正在通过一个迷宫移动某个方向时,如果他朝着墙壁移动没有任何反应。他只是继续前进。鉴于我目前的代码,这样做的好方法是什么?
所以这是代码。
this.move = function(key){
var Rblocked = false;
var Bblocked = false;
clearInterval(timer);
timer = window.setInterval(function(){
//key is event switch
switch (key) {
case 39:
for (var butt39 in blockArrayLeft){
if ($('#pacMan').position().left == blockArrayLeft[butt39].position().left && $('#pacMan').position().top == blockArrayLeft[butt39].position().top){
Rblocked = true;
pacMan.move(this.direction);
}
}
if (!Rblocked){
this.direction = 39;
pacMan.rightMove();
}
break;
case 40:
for (var butt40 in blockArrayTop){
if ($('#pacMan').position().left == blockArrayTop[butt40].position().left && $('#pacMan').position().top == blockArrayTop[butt40].position().top){
Bblocked = true;
pacMan.move(this.direction);
}
}
if (!Bblocked){
this.direction = 40;
pacMan.bottomMove();
}
break;
default:
clearInterval(timer);
break;
}
}
};
}
按键使pacMan连续向一个方向移动。我有一个setInterval,让他每隔100秒移动一次长度的空间。
如果他碰到一堵墙而且朝着它移动,他就被阻挡了。 setInterval仅在被阻止的变量为false时才会出现。
但是如果他突然向右走的话,会让他继续前进的方法是什么?