您好,欢迎访问一九零五行业门户网

使用JavaScript制作网页版贪吃蛇游戏

js贪吃蛇网页版游戏特效,经测试图片切换过程非常酷,相信大家一定都玩过这个经典小游戏吧,但是它是怎么实现的呐,感兴趣的朋友快来学习学习吧运行效果图:
小提示:浏览器中如果不能正常运行,可以尝试切换浏览模式。为大家分享的js贪吃蛇网页版游戏特效代码如下
<body><title>js贪吃蛇网页版游戏特效</title></body> <script> star = { init:function(){ var bigdiv = this.appendele(this.addstyle(this.createle(), {w:"900",h:"600",p:"absolute",t:10,l:500})); for(var i = 0; i<600/30;i++){ star.data.arrayall[i] = []; for(var j = 0; j<900/30; j++){ p = this.addstyle(this.createle(),{w:(!+[1,] ? 30 :28),h:(!+[1,] ? 30 :28),f:"left",border:"1px solid #666"}); p.setattribute("number", i*30+j) this.appendele(p,bigdiv) star.data.arrayall[i][j] = p; } } bigdiv = this.appendele(this.addstyle(this.createle(), {w:"900",h:"600",p:"absolute",t:10,l:500})); this.pusheleinselect(star.data.arrayall[9][15],star.data.arrayall[9][14],star.data.arrayall[9][13]) this.keyboard.apply(this,arguments); this.appearpoint(); this.leftgo(); }, appearpoint:function(){ var arrayin = []; var number; for(var i = 0; i<600; i++){ if(!this.hasinarray(star.data.arrayall[parseint(i/30)][i%30].getattribute("number"),star.data.arrayselect)){ arrayin.push(star.data.arrayall[i]) } } star.data.foodnumber = number = parseint(math.random()*arrayin.length); this.givecolor(number) }, givecolor:function(number){ var p = star.data.arrayall[parseint(number/30)][number%30]; star.timeinterval.timeb = setinterval(function(){ if(p.classname == "shanshuo"){ p.classname = "" p.style.backgroundcolor = "#fff" } else{ p.classname = "shanshuo"; p.style.backgroundcolor = "#f00" } },500) }, disappearcolor:function(){ clearinterval(star.timeinterval.timeb); star.data.arrayall[parseint(star.data.foodnumber/30)][star.data.foodnumber%30].style.backgroundcolor = "#f00"; }, hasinarray:function(number,array){ for(var i in array){ if(array[i] instanceof array){ if(this.hasinarray(number,array[i])){ return true; } } if(array[i].getattribute && array[i].getattribute("number") == number) return true; } return false; }, keyboard:function(){ var self = this; document.onkeydown = function(e){ e = e? e : window.event; switch(e.keycode){ case 37: if(star.keycode == 37 || star.keycode == 39){return;}; self.leftgo(); break; case 38: if(star.keycode == 38 || star.keycode == 40){return;}; self.upgo();break; case 39: if(star.keycode == 37 || star.keycode == 39){return;}; self.rightgo();break; case 40: if(star.keycode == 38 || star.keycode == 40){return;}; self.downgo();break; } } }, leftgo:function(){ var p, number , self = this; star.keycode = 37; clearinterval(star.timeinterval.timea) star.timeinterval.timea = setinterval(function(){ number = star.data.arrayselect[0].getattribute("number"); if(number%30<=0 || self.hasinarray(number-1,star.data.arrayselect)){ self.guanle(); } else{ if(star.data.foodnumber == number-1){ self.pusheleinselect(star.data.arrayall[parseint(star.data.foodnumber/30)][star.data.foodnumber%30]); self.disappearcolor(); self.appearpoint(); } else{ p = star.data.arrayselect.pop(); p.style.background = "#fff"; self.pusheleinselect(star.data.arrayall[parseint(number/30)][number%30-1]); } } },star.timeinterval.speed) }, upgo:function(){ var p, number , self = this; star.keycode = 38; clearinterval(star.timeinterval.timea) star.timeinterval.timea = setinterval(function(){ number = parseint(star.data.arrayselect[0].getattribute("number")); if(parseint(number/30)<=0 || self.hasinarray(number-30,star.data.arrayselect)){ self.guanle(); } else{ if(star.data.foodnumber == number-30){ self.pusheleinselect(star.data.arrayall[parseint(star.data.foodnumber/30)][star.data.foodnumber%30]); self.disappearcolor(); self.appearpoint(); } else{ p = star.data.arrayselect.pop(); p.style.background = "#fff"; self.pusheleinselect(star.data.arrayall[parseint(number/30)-1][number%30]); } } },star.timeinterval.speed) }, rightgo:function(){ var p, number , self = this; star.keycode = 39; clearinterval(star.timeinterval.timea) star.timeinterval.timea = setinterval(function(){ number = parseint(star.data.arrayselect[0].getattribute("number")); if(parseint(number%30)>=29 || self.hasinarray(number+1,star.data.arrayselect)){ self.guanle(); } else{ if(star.data.foodnumber == number+1){ self.pusheleinselect(star.data.arrayall[parseint(star.data.foodnumber/30)][star.data.foodnumber%30]); self.disappearcolor(); self.appearpoint(); } else{ p = star.data.arrayselect.pop(); p.style.background = "#fff"; self.pusheleinselect(star.data.arrayall[parseint(number/30)][number%30+1]); } } },star.timeinterval.speed) }, downgo:function(){ var p, number , self = this; star.keycode = 40; clearinterval(star.timeinterval.timea) star.timeinterval.timea = setinterval(function(){ number = parseint(star.data.arrayselect[0].getattribute("number")); if(parseint(number/30)>=19 || self.hasinarray(number+30,star.data.arrayselect)){ self.guanle(); } else{ if(star.data.foodnumber == number+30){ self.pusheleinselect(star.data.arrayall[parseint(star.data.foodnumber/30)][star.data.foodnumber%30]); self.disappearcolor(); self.appearpoint(); } else{ p = star.data.arrayselect.pop(); p.style.background = "#fff"; self.pusheleinselect(star.data.arrayall[parseint(number/30)+1][number%30]); } } },star.timeinterval.speed) }, guanle:function(){ alert("撞墙了,总分:" + (star.data.arrayselect.length-3) * parseint(1000 / star.timeinterval.speed)); location.reload(); }, createle:function(tag){ var tagname = tag || "div" return document.createelement(tagname) }, appendele:function(ele,father){ var father = father || document.body || document.documentelement father.appendchild(ele) return ele; }, addstyle:function(ele,css){ for(var i in css){ switch(i){ case "b" : ele.style.background = css[i]; break; case "l" : ele.style.left = css[i]+"px"; break; case "r" : ele.style.right = css[i]+"px"; break; case "t" : ele.style.top = css[i]+"px"; break; case "d" : ele.style.down = css[i]+"px"; break; case "p" : ele.style.position = css[i]; break; case "w" : ele.style.width = css[i]+"px"; break; case "h" : ele.style.height = css[i]+"px"; break; case "f" : ele.style.cssfloat = css[i]; ele.style.stylefloat = css[i]; break; default : ele.style[i] = css[i]; break; } } return ele; }, pusheleinselect:function(){ for(var i = 0; i<arguments.length; i++){ star.data.arrayselect = [arguments[i]].concat(star.data.arrayselect) this.addstyle(arguments[i],{b:"#f00"}) } } } star.data={ arrayall : [], arrayselect:[], newpoint:null, foodnumber:0 } star.timeinterval={ timea:null, timeb:null } star.keycode = 0; window.onload = function(){ var select = star.createle("select"); var optiondefault = star.createle("option"); optiondefault.innerhtml = "请选择关卡" star.appendele(optiondefault,select) star.addstyle(select,{w:200,h:30,p:"absolute",left:"40%",top:"40%"}) for(var i = 0 ; i <10 ; i++){ var option = star.createle("option"); option.innerhtml = "第" + (i+1) + "关" star.appendele(option,select); } star.appendele(select) select.onchange = function(){ selectvalue = select.options[select.selectedindex].value || select.options[select.selectedindex].innerhtml var number = selectvalue.match(/d+/)[0] star.timeinterval.speed = parseint(200/number); star.addstyle(select,{display:"none"}); star.init(); } } </script>
以上就是使用javascript制作网页版贪吃蛇游戏的详细内容。
其它类似信息

推荐信息