tanchishe

<html> <head> <meta charset="utf-8"> <title>game</title> </head> <body style="margin:0px;text-align:center;" onload="init();"> <br> <br> <br> <div id="box"> <p>W S A D移动,p暂停</p> <canvas id="myCanvas"></canvas> <p>score:<text id="ttt">0</text></p> </div> </body>
<script>
	var c=document.getElementById("myCanvas");
	c.width="600";//注意:没有单位
	c.height="400";//注意:没有单位
	var ctx=c.getContext("2d");
	
	var WIDTH;
	var HEIGHT;
	var block_size;
	
	var p_x;//1-58
	var p_y;//1-38
	var live;
	var direction;//1上 2下 3左 4右
	
	var food_x;
	var food_y;
	var p;
	
	//var text = document.getElementById('t');
	
	setInterval(run, (60));//100 40 10

	
	
	function init(){
		
		alert("点击以开始");
		
		WIDTH = 600;
		HEIGHT = 400;
		block_size = 10;
		
		//p_x = 10;//1-58
		//p_y = 18;//1-38
		body = [
			{x:10,y:18},
			{x:9,y:18},
			{x:8,y:18},
		];
		temp_x = -1;//记录增加的身体
		temp_y = -1;
		live = true;
		direction = 4;//1上 2下 3左 4右
		
		food_x = -1;
		food_y = -1;
		p = true;
		speed = 1;
		document.getElementById("ttt").innerHTML = 0;
	}
	
	function run(){
		if(p){
		
			
			//console.log(direction);
			if(direction==1){
					body[0].y-=speed;
			}else if(direction==2){
					body[0].y+=speed;
			}else if(direction==3){
					body[0].x-=speed;
			}else if(direction==4){
					body[0].x+=speed;
			}
			
			for (i=body.length-1; i>0; i--) {
			    body[i].x = body[i-1].x;
			    body[i].y = body[i-1].y;
			}
			
			if(body[0].x<1||body[0].x>58||body[0].y<1||body[0].y>38){//撞墙
				alert("啊哈哈哈哈哈,菜鸡");
				init();
			}
			for(i=2;i<body.length;i++){
				if(body[0].x==body[i].x && body[0].y==body[i].y){
					alert("啊哈哈哈哈哈,菜鸡");
					init();
				}
			}
			
			
			/*吃食物*/
			if(body[0].x==food_x && body[0].y==food_y){
				temp_x = body[body.length-1].x;
				temp_y = body[body.length-1].y;
				
				food_x = -1;
				food_y = -1;
				document.getElementById("ttt").innerHTML = parseInt(document.getElementById("ttt").innerHTML)+1;
			}
			if(temp_x!=-1 && temp_y!=-1){
				body.push({x:temp_x,y:temp_y});
				temp_x=-1;
				temp_y=-1;
			}
			
			if(food_x == -1 && food_y == -1){
				food_x = Math.floor(Math.random()*57)+1;
				food_y = Math.floor(Math.random()*37)+1;
			}
			draw();
			
		}
	}
	
	function draw(){
		ctx.clearRect(0,0,WIDTH,HEIGHT);
		
		ctx.fillStyle="#222222";
		ctx.fillRect(0,0,WIDTH,HEIGHT);
		
		ctx.fillStyle="#c2c2c2";
		ctx.fillRect(block_size,block_size,WIDTH-2*block_size,HEIGHT-2*block_size);
		
		ctx.fillStyle="#125648";//画身体
		for(i=0;i<body.length;i++){
			ctx.fillRect(body[i].x*block_size,body[i].y*block_size,block_size,block_size);
		}
		//画食物
		ctx.fillRect(food_x*block_size,food_y*block_size,block_size,block_size);
		
		
		ctx.restore();
	}
	
	document.onkeydown = function(event) {
	
	          var e = event || window.event || arguments.callee.caller.arguments[0];
			  //console.log(e.keyCode);
	          if (e && e.keyCode == 87) {
				  if(direction!=2){
				  	direction = 1;
				  }
	          }else if(e && e.keyCode == 83){
				  if(direction!=1){
				  	direction = 2;
				  }
			  }else if(e && e.keyCode == 65){
				  if(direction!=4){
				  	direction = 3;
				  }
			  }else if(e && e.keyCode == 68){
				  if(direction!=3){
				  	direction = 4;
				  }
			  }else if(e && e.keyCode == 80){
				  p=!p;
			  }			
	      };
</script>
posted @ 2020-10-29 13:51  少昊  阅读(446)  评论(0)    收藏  举报