js贪吃蛇小游戏

这篇博客详细介绍了如何使用JavaScript来实现一个基本的贪吃蛇游戏。游戏中包含了蛇的移动、绘制、碰撞检测以及苹果的生成和消失等功能。玩家可以通过键盘控制蛇的方向,当蛇吃到苹果时,分数增加,蛇的身体也会变长。当蛇碰到边界或者自己的身体时,游戏结束。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

贪吃蛇

//定义画蛇的函数
snake.draw=function()
{
for(var i=0;i<this.body.length;i++)
{
this.body[i].draw();
}
};

snake.move = function()
{
var head = this.body[0];

if(snake.direction==“right”)
{
var newhead=new Block(head.col+1,head.row,head.size)
}

if(snake.direction ==“left”)

 { 
 var newhead = new Block(head.col-1,head.row,head.size); 
       }  

if(snake.direction==“up”)
{
var newhead=new Block(head.col,head.row-1,head.size)
}
if(snake.direction==“down”)
{
var newhead=new Block(head.col,head.row+1,head.size)
}
if(newhead.col<0 || newhead.col>39 )
{
clearInterval(intervalId);
gameover();
}

      if(newhead.row<0 || newhead.row>39 )
      {
       clearInterval(intervalId);
       gameover();
      }

for(var i=0;i<this.body.length;i++)
{
if(this.body[i].colnewhead.col &&this.body[i].rownewhead.row)
{
clearInterval(intervalId);
gameover();
}
}
this.body.unshift(newhead);
if(newhead.colapple.posX &&newhead.rowapple.posY)
{
score=score+100;
while(true)
{
var checkApple =false;
apple.posX=Math.floor(Math.random()*40);
apple.posY=Math.floor(Math.random()40);
for(var i=0; i<this.body.length;i++)
{
if(this.body[i].colapple.posX &&this.body[i].rowapple.posY)
checkApple=true;
}
if(!checkApple)
break;
}
}
else{
this.body.pop();
}
};
//创建苹果对象
var apple={
posX:Math.floor(Math.random()40),
posY:Math.floor(Math.random()40),
sizeR:5
}
//画苹果函数
apple.draw=function()
{
ctx.fillStyle=“Green”;
ctx.beginPath();
ctx.arc(this.posX
10+5,this.posY
10+5,5,0,Math.PI
2,false);
ctx.fill();
ctx.fillStyle=“Black”;
};
//结束
var gameover=function()
{
ctx.font=“60px Comic Sans MS”;
ctx.textAlign=“center”;
ctx.textBaseline=“middle”;
ctx.fillText(“GAME OVER!”,200,200)
};
//定时功能
var intervalId=setInterval (function ()
{
ctx.clearRect(0,0,400,400);
ctx.font=“20px Arial”;
ctx.fillText(“Score:”+score,5,15);
snake.draw();
snake.move();
apple.draw();
ctx.strokeRect(0,0,400,400);
},200);
//贪吃蛇的按键控制
$(“body”).keydown(function(event)
{
console.log(event.keyCode);
if(event.keyCode37 &&snake.direction!=“right”)
{
snake.direction=“left”;
}
if(event.keyCode
38 &&snake.direction!=“down”)
{
snake.direction=“up”;
}
if(event.keyCode39 &&snake.direction!=“left”)
{
snake.direction=“right”;
}
if(event.keyCode
40 &&snake.direction!=“up”)
{
snake.direction=“down”;
}
}
);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值