一个简单的贪吃蛇小游戏

js小游戏 一条简单的贪吃蛇

代码复制可用

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<meta name="viewport" content="width=device-width, initial-scale=1">
		<title>贪吃蛇</title>
		<style>
			body{
				display: flex;
				height: 100vh;
				margin: 0;
				padding: 0;
				justify-content: center;
				align-items: center;
			}
		</style>
	</head>
	<body>
		<canvas id="can" width="400" height="400" style="background: #000;">对不起,你的浏览器不支持!</canvas>
	<script>
		var snake=[41,40],
			direction=1,
			food=43,
			n,
			box=document.getElementById("can").getContext("2d");
			
		function draw(seat,color){
			box.fillStyle=color;
			box.fillRect(seat%20*20+1,~~(seat/20)*20+1,18,18);
		}
			document.onkeydown = function(evt){
				direction=snake[1]-snake[0]==(n=[-1,-20,1,20][(evt||event).keyCode-37]||direction)?direction:n;
			}
			!function(){
				snake.unshift(n=snake[0]+direction);
				if(snake.indexOf(n,1)>0||n<0||n>399||direction==1&&n%20==0||direction==-1&&n%20==19){
				alert("game over!");	
				}
				draw(n,"lime");
				if(n==food){
					while(snake.indexOf(food=~~(Math.random()*400))>0);
					draw(food,"yellow");
				}else{
					draw(snake.pop(),"black");
				}
				setTimeout(arguments.callee,150);
			}();
			
			
			
			
			
			
			
			
			
	</script>	
	</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值