一、截图
二、代码
<script type="text/javascript" src="jquery-1.7.1.js"></script> <style type="text/css"> #map{width:700px; height:600px; border:0px solid #CCC; overflow:hidden;} .maps{width:10px; height:10px; float:left; overflow:hidden;border:1px solid red;} .back{background:black;} .worm{background:blue;} </style> <script type="text/javascript"> // 定时器 var gameInt // 定义方格 function Box(x,y){ this.x = x; this.y = y; } // 初始方向 var direction = 2;//1:东-右-39 2:南-下-40 3:西-左-37 4:北-上-38 37左键 38上建 39右键 下键40 // 定时器 var gameInt // 定义方格 function Box(x,y){ this.x = x; this.y = y; } // 初始方向 var direction = 2;//1:东-右-39 2:南-下-40 3:西-左-37 4:北-上-38 37左键 38上建 39右键 下键40 // 初始蛇 var snakeArr = [new Box(1,2),new Box(1,3),new Box(1,4),new Box(2,4),new Box(3,4),new Box(4,4),new Box(5,4),new Box(6,4)]; // 蛇头 var headBox = snakeArr[snakeArr.length-1]; // 虫子 var worm ; // 初始化地图 function initMap(){ for(var i=1;i<=50;i++){ for(var j=1;j<=50;j++){ $("<div id=map_"+i+"_"+j+" class='maps'></div>").appendTo($('#map')); if(j==50){ $('<div style="clear:both;"></div>').appendTo($('#map')); } } } } // 绘制蛇 function drawSnake(){ for(var i=0;i<snakeArr.length;i++){ var box = snakeArr[i]; $("#map_"+box.x+"_"+box.y).addClass('back'); } } // 清楚蛇 function clearSnake(){ for(var i=0;i<snakeArr.length;i++){ var box = snakeArr[i]; $("#map_"+box.x+"_"+box.y).removeClass('back'); } } // 绘制虫子 function drawWorm(){ do{ var x = Math.round(Math.random()*(50-1)); var y = Math.round(Math.random()*(50-1)); worm = new Box(x,y); }while(isInSnake(worm)); //worm = new Box(x,y); $("#map_"+worm.x+"_"+worm.y).addClass('worm'); } // 清除虫子 function clearWorm(){ $("#map_"+worm.x+"_"+worm.y).removeClass('worm'); } // 判断蛇方格中是否存在该方格 function isInSnake(worm){ var result = false; for(var i=0;i<snakeArr.length;i++){ var box = snakeArr[i]; if(worm.x == box.x && worm.y == box.y){ result = true; break; } } return result; } /* 1、清除原有蛇 2、计算新蛇头的位置 3、判断新蛇头是否碰到边界 是则结束游戏 4、判断新蛇头是否碰到自己 是则结束游戏 5、判断蛇是否碰到虫子 是则吃掉该虫子 产生一个新虫子 6、重新绘制蛇 */ function forward(){ // 清除原有蛇 clearSnake(); // 计算新蛇头的位置 switch (direction){ case 1: headBox = new Box(headBox.x,headBox.y+1); break; case 2: headBox = new Box(headBox.x+1,headBox.y); break; case 3: headBox = new Box(headBox.x,headBox.y-1); break; case 4: headBox = new Box(headBox.x-1,headBox.y); break; } // 判断新蛇头是否碰到边界 if(headBox.x<1 || headBox.x > 50 || headBox.y<1 || headBox.y > 50){ clearInterval(gameInt); alert("game over!"); //return; } // 判断新蛇头是否碰到自己 if(isInSnake(headBox)){ clearInterval(gameInt); alert("game over!"); //return; } // 判断蛇是否碰到虫子 if(headBox.x == worm.x && headBox.y == worm.y){ clearWorm(); drawWorm(); }else{ snakeArr.shift(); } snakeArr.push(headBox); // 重新绘制蛇 drawSnake(); } $(function(){ // 初始化地图 initMap(); // 初始化蛇 drawSnake(); // 初始化虫子 drawWorm(); // 启动定时器 gameInt = setInterval(function(){ forward(); },200); // 监听键盘方向键 根据方向键确定蛇的前进方向 $(document).keydown(function(e){ switch(e.which){ case 37: if(direction!=1){ direction = 3; } break; case 38: if(direction!=2){ direction = 4; } break; case 39: if(direction!=3){ direction = 1; } break; case 40: if(direction!=4){ direction = 2; } break; } }); }); </script> <div id="map"></div>
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于