【发布时间】:2019-12-31 20:55:29
【问题描述】:
我正在尝试制作一个蛇游戏。为了移动蛇,我有一个二维数组,可以帮助我在正确的位置填充画布,所以为了让它向前移动,我的逻辑是给蛇身体的每个部分(=每个索引)在索引中的位置下一个,如果我试图向右走,头部的 x 位置会在 if 语句中“手动”递增。
这里我从长度为 3 的蛇开始([3,3] 和 [4,3] 是身体的部分,[5,3] 是头部)
这是我的代码:
var snake = [[3,3],[4,3],[5,3]];
var dir = "right";
function snakeGo(){
eraseSnake();
for(var i = 0; i < snake.length-1; i++){
snake[i]=snake[i+1];
}
if(dir == "right"){
snake[snake.length-1][0]++;
}
drawSnake();
}
snakeGo();
但是当我调试时,在程序进入 if 之前,'snake' 是 [[4,3],[5,3],[5,3]] 并且在 if 'snake' 的末尾是[[4,3],[6,3],[6,3]]
但我认为应该是 [[4,3],[5,3],[6,3]]..
snake.length-1 = 2 !为什么要增加snake1[0]?
if 之前:
if 之后:
【问题讨论】:
标签: javascript arrays increment