闲来无事,花了两天时间,用javascript 写了一个打豆豆的游戏,至于怎么玩的就不细说了,到网上搜一下就知道了,很简单。
下面是源码,发布出来供大家学习交流。
由于本程序没有用到一个图片,所以界面在ie下豆豆都是方形的比较扎眼,建议用chrome浏览器运行,或者firefox
演示地址:http://www.imkoko.com/app/dadoudou.php
不多说,上代码
<script> <br>/* <br>*作者:江奇 <br>*演示网站:酷酷网 http://www.imkoko.com/app/dadoudou.php <br>*程序完全免费公开,转载请保留此信息,谢谢 <br>*/ <br>function $(o){ <br>return document.getElementById(o); <br>} <br>var MoveObject={ <br>down:function (o,fun) <br>{ <br>document.onselectstart=new Function("event.returnValue=false"); <br>document.body.setAttribute('style','-moz-user-select: none;'); <br>//e=e?e:window.event; <br>e=arguments.callee.caller.arguments[0] || window.event; <br>x=e.clientX; <br>y=e.clientY; <br>fun([x,y]); <br>return false; <br>} <br>}; <br>var o=new Array(); <br>var it=0; <br>var fen=0; <br>function ini(){ <br>var _doc = (document.compatMode != "BackCompat") ? document.documentElement : document.body; <br>fly_left=_doc.scrollLeft+_doc.clientWidth/2-$('fly').offsetWidth/2; <br>$('fly').style.left=fly_left+'px'; <br>for(i=0;i<15;i++){ <br>for(j=0;j<12;j++){ <br>tmp=document.createElement('div'); <br>tmp.className="b"; <br>tmp.style.left=(j*50+i%2*25)+'px'; <br>tmp.style.top=i*25+'px'; <br>$('main').appendChild(tmp); <br>} <br>} <br>for(i=0;i<24;i++){ <br>o[i]=new Array(); <br>} <br>for(i=0;i<200;i++){ <br>var ji=cre(); <br>tmp=document.createElement('div'); <br>tmp.innerHTML=t; <br>tmp.id=ji[0]+'_'+ji[1]; <br>tmp.className="c c"+t; <br>tmp.style.left=(x*25)+'px'; <br>tmp.style.top=y*25+'px'; <br>$('main').appendChild(tmp); <br>} <br>} <br>function cre(){ <br>x=parseInt(Math.random()*24); <br>y=parseInt(Math.random()*15); <br>t=parseInt(Math.random()*10+1); <br>if(o[x][y]>0){ <br>var re=cre(); <br>return re; <br>}else{ <br>o[x][y]=t; <br>return [x,y]; <br>} <br>} <br>function cc(p){ <br>x=parseInt((p[0]-$('fly').offsetLeft)/25); <br>y=parseInt((p[1]-$('fly').offsetTop)/25); <br>if(o[x][y]>0){ <br>return false; <br>}else{ <br>var finded=[]; <br>for(i=y;i>=0;i--){ <br>if(o[x][i]>0){ <br>finded.push([o[x][i],x,i]); <br>break; <br>} <br>} <br>for(i=y;i<o[x].length;i++){ <br>if(o[x][i]>0){ <br>finded.push([o[x][i],x,i]); <br>break; <br>} <br>} <br>for(i=x;i>=0;i--){ <br>if(o[i][y]>0){ <br>finded.push([o[i][y],i,y]); <br>break; <br>} <br>} <br>for(i=x;i<o.length;i++){ <br>if(o[i][y]>0){ <br>finded.push([o[i][y],i,y]); <br>break; <br>} <br>} <br>find=0; <br>po(finded,0); <br>if(find==0){ <br>it+=10; <br>} <br>fen=fen+find; <br>$('cou').innerHTML='得分:'+fen; <br>} <br>} <br>function po(obj,n){ <br>a=obj[n]; <br>tag=0; <br>for(j=n+1;j<obj.length;){ <br>if(obj[j][0]==a[0]){ <br>o[obj[j][1]][obj[j][2]]=0; <br>paowuxian.p($(obj[j][1]+'_'+obj[j][2])); <br>obj.splice(j,1); <br>tag=1; <br>find++; <br>}else{ <br>j++; <br>} <br>} <br>if(tag==0){ <br>n++; <br>}else{ <br>o[a[1]][a[2]]=0; <br>paowuxian.p($(a[1]+'_'+a[2])); <br>find++; <br>obj.splice(n,1); <br>} <br>if(n<obj.length-1){ <br>po(obj,n); <br>} <br>} <br>function time(){ <br>it++; <br>if(it<121){ <br>$('time').innerHTML='剩余时间:'+(121-it); <br>setTimeout('time()',1000); <br>}else{ <br>$('pin').style.display='block'; <br>$('menu').style.display='block'; <br>$('menu').innerHTML='<button onclick="start()" >开始<br><br><br>'+'恭喜你 '+fen+' 分' <br>} <br>} <br>function start(){ <br>it=0; <br>fen=0; <br>$('main').innerHTML=''; <br>o=new Array(); <br>ini(); <br>$('pin').style.display='none'; <br>$('menu').style.display='none'; <br>time(); <br>} <br>ini(); <br>var paowuxian={ <br>_type:[], <br>bot:0, <br>o:[], <br>ini:function(o){ <br>for(i=0;i<this.o.length;i++){ <br>if(this.o[i]==o){ <br>return i; <br>} <br>} <br>for(i=0;i<this.o.length;i++){ <br>if(this._type[i].sta==-1){ <br>break; <br>} <br>} <br>o.style.position='absolute'; <br>this.o[i]=o; <br>this._type[i]={l:o.offsetLeft,t:o.offsetTop,s:0,nt:0,sta:1}; <br>return i; <br>}, <br>p:function(o){ <br>this.ini(o); <br>var _doc = (document.compatMode != "BackCompat") ? document.documentElement : document.body; <br>var sctop= document.documentElement.scrollTop||document.body.scrollTop; <br>fly_top=sctop+_doc.clientHeight <br>this.bot=fly_top-30; <br>setTimeout("paowuxian.dos("+i+")",20); <br>}, <br>dos:function(i){ <br>if(this._type[i].nt>this.bot){ <br>if(this._type[i].sta==1){ <br>document.body.removeChild(this.o[i]); <br>this._type.sta=-1; <br>} <br>}else{ <br>this._type[i].l=this._type[i].l+3; <br>this._type[i].s++; <br>this._type[i].nt=this._type[i].t-5*this._type[i].s+0.5*1*this._type[i].s*this._type[i].s; <br>this.o[i].style.top=this._type[i].nt+'px'; <br>this.o[i].style.left=this._type[i].l+'px'; <br>setTimeout("paowuxian.dos("+i+")",20); <br>} <br>} <br>}; <br></script>
我是江奇











