さて、私は基本的なインポートを使用してスネーク ゲームを実行しようとしていますが、JavaScript の割り当てが原因でスタックしてしまいました。
変更前のヘビの値として oldSnake の値を割り当てました。
しかし、forEach に入ると、既に割り当てられている値が変更され、その理由がわかりません。
forEach に入る前に
forEachに入った後
私はそれについて検索しましたが、どこにも行きませんでした. 誰かが何が起こっているのか知っていますか?
import { snake } from "/snake.js";
let lastDirection = {y: 1, x:0};
export function updateGame(direction){
let oldSnake = snake;
if (!(direction.y == 0 && direction.x == 0)){
if((lastDirection.y == 1 && direction.y == -1 || lastDirection.y == -1 && direction.y == 1)
||(lastDirection.x == 1 && direction.x == -1 || lastDirection.x == -1 && direction.x == 1)){
direction = lastDirection;
}
snake.forEach((snakeSlice, index)=>{
lastDirection = direction;
if (index === 0){
snakeSlice.ypos+= direction.y;
snakeSlice.xpos+= direction.x;
}
else{
snakeSlice.ypos = oldSnake[index-1].ypos;
snakeSlice.xpos = oldSnake[index-1].xpos;
}
});
}
}