17.5.2 移动苹果

  Move方法将苹果移动到游戏区域中的一个随机的新位置(即画布,而不是边框上的任何块)。当贪吃蛇吃掉苹果的时候,调用该方法,以便苹果出现在一个新的位置。

《javascript-少儿编程》第17章开发贪吃蛇游戏2之移动苹果

  在❶处,创建了randomCol和randomRow变量。这些变量将设置为游戏区域内的一个随机的列和行。如图17-1所示,游戏区域的列和行的范围是1到38,因此,需要从该范围中选取两个随机数。

  为了生成这些随机数,调用Math.floor(Math.random()*38),它给出了从0到37的一个随机数,然后,给结果加1以得到1到38之间的一个数字(要了解关于Math.floor和Math.random是如何工作的,参阅3.7.2小节)。

  在❶处所做的事情,就是创建随机的列值,但是,不是写成38,而是(widthInBlocks-2).这意味着,如果随后修改游戏的大小,也不必再修改这段代码。使用Math.floor(Math.random()*(heightInBlocks-2))+1,做同样的事情来获取随机的行值。

  最后在❷处,使用随机的列和行值创建了一个新的块对象,并且将其保存到this.position中,这意味着,苹果的位置将会更新为游戏区域之中的某个新的随机位置。

  可以像下面这样测试move方法:

《javascript-少儿编程》第17章开发贪吃蛇游戏2之移动苹果