0
我是一種新的JavaScript,我想做一個蛇遊戲,我想讓蛇自動移動snake.push
和snake.shift(tail)
,我嘗試了一些東西,並始終失敗,就像一個foor loop
並添加dy ++到hY(但只有頭部正在移動)。使用這段代碼,我得到的所有東西都是頭部移動和尾部移動,但它只移動一次。如何通過添加和刪除多維數組中的項來使其保持移動所需的方向?蛇遊戲移動問題[javascript]
var canvas = document.getElementById("myCanvas");
var ctx = canvas.getContext("2d");
var snakeSize=10;
var snakeLength = 5;
var dist =2+snakeSize;
var dy=1;
var direction = "up";
function game(){
ctx.clearRect(0,0,canvas.width,canvas.height);
drawSnake()
}
function snakeBody(x,y){
ctx.beginPath();
ctx.fillRect(x*(dist),y*(dist),snakeSize,snakeSize);
ctx.fillStyle="red";
ctx.fill();
ctx.closePath();}
function drawSnake(){
var snake = [];
for (var i=0;i<=snakeLength;i++){
snake.push({x:i, y:canvas.height/dist/2});
}
var hX = snake[snake.length-1].x
var hY = snake[snake.length-1].y
switch(direction){
case "down":
hY++;
break;
case "up":{
hY--;}
break;
case "right":
hX++
break;
case "left":
hX--;
break;
}
var tail = snake.shift();
tail.x=hX;
tail.y=hY;
snake.push(tail);
for (var i=0;i<=snake.length;i++){
snakeBody(snake[i].x,snake[i].y);
}
}
setInterval(game,1000)