贪吃蛇的web版 出现了问题 希望大家帮忙留言改正
2017-01-16 11:28
106 查看
html代码
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>贪吃蛇</title> <link rel="stylesheet" href="贪吃蛇.css"> <script src="贪吃蛇.js"></script> </head> <body onkeydown="move(event);"> <div id="oDiv"> </div> </body> </html>css代码
*{margin: 0;padding: 0;}#oDiv{width: 704px;height: 464px;border: 2px solid #ff625d;position: absolute;left: 600px;top: 250px}js代码
/*** Created by zhao on 2017/2/2.*/oDiv=document.getElementById('oDiv');var i=index=0;var timer;lefts=new Array();tops=new Array();//定义食物function food() {//在随机位置上产生食物的节点var m=Math.round(Math.random()*684);var n=Math.round(Math.random()*444);this.m=m;this.n=n;//产生食物的节点foo=document.createElement('div');foo.style.width=20+'px';foo.style.height=20+'px';foo.style.background='blue';foo.style.position='absolute';foo.style.left=m+'px';foo.style.top=n+'px';document.getElementById('oDiv').appendChild(foo);}//每次吃到食物后产生一个新的节点function product(left,top) {len=document.createElement('div');len.style.width=20+'px';len.style.height=20+'px';len.style.background='red';len.style.position='absolute';len.style.left=left+'px';len.style.top=top+'px';document.getElementById('oDiv').insertBefore(len,document.getElementById('oDiv').childNodes[1]);alert();}//每次吃到食物后,食物消失function die(foo) {foo.parentNode.removeChild(foo);var foo=new food(foo);}//跟随模式function follow() {setTimeout(function () {for(i=1;i< document.getElementById('oDiv').childNodes.length;i++){lefts[i]= document.getElementById('oDiv').childNodes[i-1].offsetLeft;tops[i]= document.getElementById('oDiv').childNodes[i-1].offsetTop;}for(i=1;i<oDiv.childNodes.length;i++){document.getElementById('oDiv').childNodes[i].style.left=lefts[i]+'px';document.getElementById('oDiv').childNodes[i].style.top=tops[i]+'px';}},20)}//定义蛇function snake() {//坐标this.x=x;this.y=y;//在随机位置出产生一个节点,并返回其坐标var x=Math.round(Math.random()*684);var y=Math.round(Math.random()*444);//产生蛇一个节点pro=document.createElement('div');pro.style.width=20+'px';pro.style.height=20+'px';pro.style.background='red';pro.style.position='absolute';pro.style.left=x+'px';pro.style.top=y+'px';document.getElementById('oDiv').appendChild(pro);//移动this.left=function () {clearInterval(timer);timer=setInterval(function () {if(pro.offsetLeft<-2||pro.offsetLeft>686||pro.offsetTop<-2||pro.offsetTop>446) alert('死亡');else{if((pro.offsetLeft>foo.offsetLeft-20)&&(pro.offsetLeft<foo.offsetLeft+20)&&(pro.offsetTop<foo.offsetTop+20)&&(pro.offsetTop>foo.offsetTop-20)){die(foo);product(pro.offsetLeft+20,pro.offsetTop);}pro.style.left = pro.offsetLeft - 1 + 'px';follow();}},20);};this.right=function () {clearInterval(timer);timer=setInterval(function () {if(pro.offsetLeft<-2||pro.offsetLeft>686||pro.offsetTop<-2||pro.offsetTop>446) alert('死亡');else {if((pro.offsetLeft>foo.offsetLeft-20)&&(pro.offsetLeft<foo.offsetLeft+20)&&(pro.offsetTop<foo.offsetTop+20)&&(pro.offsetTop>foo.offsetTop-20)){die(foo);product(pro.offsetLeft-20,pro.offsetTop);}pro.style.left = pro.offsetLeft + 1 + 'px';follow();}},20);};this.up=function () {clearInterval(timer);timer=setInterval(function () {if(pro.offsetLeft<-2||pro.offsetLeft>686||pro.offsetTop<-2||pro.offsetTop>446) alert('死亡');else {if((pro.offsetLeft>foo.offsetLeft-20)&&(pro.offsetLeft<foo.offsetLeft+20)&&(pro.offsetTop<foo.offsetTop+20)&&(pro.offsetTop>foo.offsetTop-20)){die(foo);product(pro.offsetLeft,pro.offsetTop+20);}pro.style.top = pro.offsetTop - 1 + 'px';follow();}},20);};this.down=function () {clearInterval(timer);timer=setInterval(function () {if(pro.offsetLeft<-2||pro.offsetLeft>686||pro.offsetTop<-2||pro.offsetTop>446) alert('死亡');else {if((pro.offsetLeft>foo.offsetLeft-20)&&(pro.offsetLeft<foo.offsetLeft+20)&&(pro.offsetTop<foo.offsetTop+20)&&(pro.offsetTop>foo.offsetTop-20)){die(foo);product(pro.offsetLeft,pro.offsetTop-20);}pro.style.top = pro.offsetTop + 1 + 'px';follow();}},20);};this.eat=function () {};this.dead=function () {};}//当按键无效时发出响声function music() {}//蛇的移动function move(event) {switch (event.keyCode){case 38: snakes.up(); break;case 40: snakes.down();break;case 39: snakes.right();break;case 37: snakes.left(); break;default: music();}}//初始化过程;window.onload=function () {//定义一条蛇snakes=new snake();//定义食物foods=new food();//产生移动的动作if(event) move(event);}
相关文章推荐
- 出现一个异常希望大家能帮忙解决!
- 经常写VC工程的人都会遇到升级到VS2005时出现的各种各样的问题,下面写一些自己遇到的问题,还有什么不全的请大家补充。希望能给朋友们一些帮助。
- vb连接数据库中数据集的问题!!!!!(希望大家可以帮忙下,,谢了!!!)
- 做课程设计遇到的问题,希望大家帮忙解决,谢谢!
- js调用asp时出现的郁闷问题,大家帮忙看看
- openxava出现异常,希望大家能帮忙解决!!!
- 端口占用问题,今天学习的时候又出现了这个问题,找了度娘,特此记录以下。第一次写博客,希望自己能坚持下来。大家共同进步
- 发送二进制短信时出现的问题,希望大家指点
- POP3 邮件接收 出现乱码了,希望哪位能帮忙看下啥问题!帮我改下,谢谢
- 使用IdHttp获取网页代码出现的问题,只能得到部分代码,为什么,请大家帮忙
- 一个关于WebRequest的问题,希望大家能够讨论或指导一下小弟,谢谢
- 又一个0day EXP出现 【希望大家不要用来攻击网站】
- 机房出现新问题,大家请注意!征求答案中
- 通过类库来实现多窗体windows程序遇到了些问题,请大家有空帮忙看一下,谢谢
- [导入]发布本人整理的面试问题大全,为准备找工作的同行们尽一份力!希望大家多补充或回答!
- 请大家帮忙~~~~~~~~~~SQL问题。
- ACCESS模糊查询出现的变态问题,不知道该问题的希望注意,知道内幕的高手还望给小弟一个解释 Thanks
- 请大家帮忙,帮我看一下.net的这个问题
- 欢迎大家帮忙解决问题
- [导入]发布本人整理的面试问题大全,为准备找工作的同行们尽一份力!希望大家多补充或回答!