0

さて、私は基本的なインポートを使用してスネーク ゲームを実行しようとしていますが、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;
                }
            });
        }
    }
4

0 に答える 0