我正在尝试制作蛇克隆,但每当我运行它时,尾部碎片都会被分配与头部相同的值。我不知道为什么会这样。
这段代码应该绘制整个尾部,然后将每个尾部的坐标更新为其前面的部分。
for (var i = 1; i < snake.length; i++) {
snake[i].draw();
snake[i].x = snake[i-1].x;
snake[i].y = snake[i-1].y;
}
完整代码:https://drive.google.com/open?id=1HaFBpaasoqNTi5tnNLr5O9vIM4oTujgv
答案 0 :(得分:1)
我认为你需要相反的任务。
snake[i - 1].x = snake[i].x;
snake[i - 1].y = snake[i].y;
用你的方法你有这个
... ... ...
0.1 0.1 0.1
1.1 0.1 0.1
1.0 1.0 0.1
代码
const coor = [
{x: 0, y: 1},
{x: 1, y: 1},
{x: 1, y: 0}
];
for(let i = 1; i < coor.length; i++) {
coor[i].x = coor[i - 1].x;
coor[i].y = coor[i - 1].y;
}
console.log(coor);
&#13;
根据给定你得到这个。最后一个是没有更多的项目。
... ... ...
0.1 1.1 1.1
1.1 1.1 1.0
1.0 1.0 ...
代码
const coor = [
{x: 0, y: 1},
{x: 1, y: 1},
{x: 1, y: 0}
];
for(let i = 1; i < coor.length; i++) {
coor[i - 1].x = coor[i].x;
coor[i - 1].y = coor[i].y;
}
console.log(coor);
&#13;