13-玩家
9.3.4 玩家
玩家和所有玩家的当前属性都被保存在player对象中。尽管微型坦克迷宫是一个简单的游戏,但是也需要许多属性。以下是对每个属性的表述列表。
- player.row:玩家在15×15的游戏区域中所在的当前行。
- player.col:玩家在15×15的游戏区域中所在的当前列。
- player.nextRow:在方向键被成功按下后,玩家将要移动的目标行。
- player.nextCol:在方向键被成功按下后,玩家将要移动的目标列。
- player.currentTile:用于显示玩家的图片在图片表playerTiles中的编号。
- player.rotation:在开始时,玩家向上,即旋转0°。当玩家在4个基本方向上移动时,玩家的旋转角度将变为玩家移动后所面向的方向。
- player.speed:玩家对象在每一帧中移动的像素数。
- player.destinationX:32×32 大小的玩家对象移动到新区块之后最终位置的x轴坐标。该属性表示了新位置左上角的x轴坐标。在播放玩家移动动画的游戏阶段,这个值决定了玩家将要抵达的新的x轴坐标位置。
- player.destinationY:32×32大小的玩家对象移动到新区块之后最终位置的y轴坐标。该属性表示了新位置左上角的 y 轴坐标。在播放玩家移动动画的游戏阶段,这个值决定了玩家将要抵达的新的y轴坐标位置。
- player.x:32×32大小的玩家对象的左上角的x轴坐标。
- player.y:32×32大小的玩家对象的左上角的y轴坐标。
- player.dx:播放动画时,玩家在x方向上每一帧的变化。这个值可能是−1、0或1,这取决于玩家移动的方向。
- player.dy:播放动画时每一帧玩家在y方向上的变化。这个值可能是−1、0或1,这取决于玩家移动的方向。
- player.hit:当玩家移动到一个被敌方坦克或墙体占据的位置时,该属性设置为true。
- player.dead:当player.hit为true时,玩家将在游戏区域上被一个爆炸的精灵图替代。当dead属性为true时,将不会在游戏屏幕上渲染玩家对象。
- player.win:当玩家抵达目标时,该属性被设置为true。
敌人和玩家共享许多相同的属性,这是由于它们在游戏区域上计算移动的方式是相同的。下面介绍如何构建敌人对象。