【发布时间】:2012-07-24 01:06:05
【问题描述】:
我正在尝试使用 Javascipt 构建 HTML5 蛇游戏。我有一个主要问题需要解决,但经过数小时的思考仍无法解决。
这与 setInterval 和箭头键按下时的蛇运动有关。当快速按下箭头键时.. 几乎就像按多个键一样游戏结束(它意味着当蛇跑过自己时结束)
解决问题的工作模型:http://jsfiddle.net/MgsZp/29/
情况:蛇正在向下移动,当我快速按下左箭头然后向上箭头时,当左箭头的时间间隔立即清除时,蛇会越过自身(仅向上移动)。相反,它应该向左然后向上移动。
我试图将在这种情况下按下的箭头键存储在数组中,但无法处理。
例子:
var 箭头数组 = [] ; /* 存储按下的箭头键 */
// 按键时 setInterval(move_snake, timer) 方向存储在 arrowArray[0]
// arrowArray.shift() 移除蛇当前移动的方向,并在arrowArray[0]中为下一个方向让路
现在,当快速按下箭头键时,我如何等到蛇向一个方向移动后再向第二个方向移动。尝试在 setTimeout 中使用 setInterval 等待计时器结束,但没有成功。
帮忙?
【问题讨论】:
标签: javascript html setinterval