17.4.2添加setDirection方法

  setDirection方法接受来自刚才所介绍的键盘处理事件的新的方向,并且使用它更新贪吃蛇的方向。这个方法还防止玩家调头以导致贪吃蛇立即碰到自己。例如,如果贪吃蛇向右移动,然后它突然向左转而不向上或向下移动以改变路径,那么它会和自己碰撞。这种现象叫作非法调头,因为我们不想让玩家这么做。例如,图17-6展示了有效的方向以及当贪吃蛇向右移动的时候的一个非法方向。

《javascript-少儿编程》第17章开发贪吃蛇游戏2之添加setDirection方法

图17-6 基于当前方向的有效的新方向

  setDirection方法检查玩家是否试图进行非法调头。如果是的,该方法使用return来尽早结束;否则的话,它更新贪吃蛇对象上的nextDirection属性。

以下是setDirection方法的代码。

《javascript-少儿编程》第17章开发贪吃蛇游戏2之添加setDirection方法

  ❶处的if…else语句有4个部分,分别处理我们想要防止的4种非法调头。第一部分表示,如果贪吃蛇向上移动(this.direction is “up”)并且玩家按下了向下按键(newDirectioin is”down”),应该用return尽早退出该方法。该语句的其他部分,以相同的方式来处理其他的非法调头。

  只有当newDirection是一个有效的新方向的时候,setDirection方法才会到达最后一行;否则,return语句之一将会停止该方法。

  如果允许newDirection,在❷处,把它设置为贪吃蛇的nextDirection属性。


本站内容未经许可,禁止任何网站及个人进行转载。