0
我得到了问题。我不知道怎么写,使蛇体跟随头 我找到了一些解决方案,你必须尾部从最后转移到阵列摆在首位的代码,我想在这里做的移蛇javascript后移动矩形
var sth = Game.snake.tail.pop();
Game.snake.tail.unshift(sth);
但我真的不知道它给了我什么。如果有人能够解释这种转变的想法,并像白痴一样移动,我会非常高兴:)这是整个蛇的功能。
function Snake(){
this.x = 0;
this.y = 0;
this.points = {};
this.a = 0;
this.long = 4;
this.tail = [];
this.xspeed = 1;
this.yspeed = 1;
}
Snake.prototype.update = function(){
for (i=1; i<=Game.snake.long; i++){
var num = i*20;
Game.snake.tail.push({x:num, y:0});
//Game.snake.tail[i] = Game.snake.tail[i+1];
}
}
Snake.prototype.draw = function(){
var sth = Game.snake.tail.pop();
Game.snake.tail.unshift(sth);
console.log(sth);
/*/console.log(Game.snake.tail);
Game.snake.unshift(Game.snake.tail);
console.log(Game.snake.tail);/*/
//Game.snake.tail[i] = Game.snake.tail[i+1];
for (i=0; i<=Game.snake.long-1; i++){
//Game.snake.tail[i] = Game.snake.tail[i+1];
Game.ctx.beginPath();
Game.ctx.rect(Game.snake.tail[i].x,Game.snake.tail[i].y,VAR.scale,VAR.scale);
Game.ctx.stroke();
if (Game.key_39) {Game.snake.tail[i].x = Game.snake.tail[i].x+Game.snake.xspeed*VAR.scale;}
else if (Game.key_37) {Game.snake.tail[i].x = Game.snake.tail[i].x-Game.snake.xspeed*VAR.scale;}
else if (Game.key_38) {Game.snake.tail[i].y = Game.snake.tail[i].y-Game.snake.yspeed*VAR.scale;}
else if (Game.key_40) {Game.snake.tail[i].y = Game.snake.tail[i].y+Game.snake.yspeed*VAR.scale;}
}
}
/*/function eat(){
if (Game.food.x === Game.snake.x && Game.food.y === Game.snake.y){
VAR.count = 300;
Game.snake.long++;
Game.snake.tail.push({x:0, y:0});
console.log(Game.snake.tail);
}
} /*/