<HTML> <HEAD> <TITLE>打砖块</TITLE> <SCRIPT LANGUAGE="JavaScript"> <!-- var timerID = null var INT = 10 var loadFLG=0 var gameFLG=0 var missFLG=0 var tim = 0 var blcol = new Array(5) //砖块颜色 var blsta = new Array(40) //砖的状态 var blclr = 0 //是否打完砖块的标志 var ballX = 0 //球的相关参数 var ballY = 0 var ballN = 3 var ballDX= 0 var ballDY= 0 var tmpRL = 193 var keyP=0 var keyPr=0 var endFLG=0blcol[0]="#FFFF00" blcol[1]="#FFB000" blcol[2]="#FF8000" blcol[3]="#FF4000" blcol[4]="#FF0000" blcol[5]="#9999FF" var ieFLG=0 var n4FLG=0 if (document.all){ ieFLG=1 }else{ if (document.getElementById){ n4FLG=0 }else{ n4FLG=1 } } // 主函数
function mainF(){ clearTimeout(timerID) tim=tim+1 with (Math){tmptim=floor(tim/10)} tmptc="" tmptb=tim/10 if (tim==tmptim*10){tmptc=".0"} ballX=ballX+ballDX ballY=ballY+ballDY outCHK() blkCHK() if (document.getElementById){ document.SC.TM.value=tmptb+tmptc document.SC.CL.value=blclr document.SC.SR.value=blclr*200-tim document.getElementById("ball").style.top = ballY document.getElementById("ball").style.left = ballX }else{ if (ieFLG==1){ document.SC.TM.value=tmptb+tmptc document.SC.CL.value=blclr document.SC.SR.value=blclr*200-tim ball.style.posTop = ballY ball.style.posLeft = ballX }else{ document.layers["info"].document.forms[0].TM.value=tmptb+tmptc document.layers["info"].document.forms[0].CL.value=blclr document.layers["info"].document.forms[0].SR.value=blclr*200-tim document.layers["ball"].moveTo(ballX,ballY) } } racketMove() if (gameFLG==1){timerID = setTimeout("mainF()",INT)} } //子函数
//game init function initG(){ keyP=0 if (endFLG == 0){ endFLG=1 blclr=0 tim=0 ballN=3 with (Math){tmptim=floor(tim/10)} if (document.getElementById){ document.SC.TM.value=tmptim document.getElementById("ovrmes").style.top=-1000 document.getElementById("clrmes").style.top=-1000 }else{ if (ieFLG==1){ document.SC.TM.value=tmptim clrmes.style.top=-1000 ovrmes.style.top=-1000 }else{ document.layers["info"].document.forms[0].TM.value=tmptim document.layers["ovrmes"].visibility="HIDE" document.layers["clrmes"].visibility="HIDE" } } for (ib=0; ib<5; ib++){for (ia=0; ia<8; ia++){ tmpIDn=ib*8+ia+1 if (document.getElementById){ document.getElementById(tmpIDn).style.backgroundColor = blcol[ib] }else{ if (ieFLG==1){ document.all(tmpIDn+9).style.backgroundColor = blcol[ib] }else{ document.layers[tmpIDn].bgColor=blcol[ib] } } blsta[ib*8+ia]=ib }} } if (document.getElementById){ document.SC.BL.value=ballN document.getElementById("starter").style.top=-1000 }else{ if (ieFLG==1){ document.SC.BL.value=ballN starter.style.top=-1000 }else{ document.layers["info"].document.forms[0].BL.value=ballN document.layers["starter"].visibility="HIDE" } } gameFLG=1;loadFLG=1 ballX=209;ballY=270;ballDX=-8;ballDY=-8;tmpRL=193;missFLG=0 timerID = setTimeout("mainF()",INT) }
function keyDown(DnEvents){ if (ieFLG==0){ k=DnEvents.which }else{ k=window.event.keyCode }
if (k == 54){keyP=5} //6 if (k == 102){keyP=5} //6 if (k == 52){keyP=-5} //4 if (k == 100){keyP=-5} //4 if (k == 83){if (gameFLG==0){initG()}} //S if (k == 115){if (gameFLG==0){initG()}} //s } function keyUp(UpEvents){ if (ieFLG==0){ k=UpEvents.which }else{ k=window.event.keyCode } if (k == 102){keyP=0} //6 if (k == 54 ){keyP=0} //4 if (k == 100){keyP=0} //6 if (k == 52 ){keyP=0} //4 } //racket move function racketMove(){ if (loadFLG==1){ if (keyP != 0){ tmpkeyP=keyP*keyPr if (tmpkeyP>=0){ if (keyPr != 0){ if (Math.abs(keyPr)<15){keyPr=keyPr*1.2} }else{ keyPr=keyP } }else{ keyPr=keyP } }else{ keyPr=0 } tmpRL=tmpRL+keyPr if (tmpRL<16){tmpRL=16} if (tmpRL>370){tmpRL=370} if (document.getElementById){ document.getElementById("racket").style.left=tmpRL }else{ if (ieFLG==1){ racket.style.left=tmpRL }else{ document.layers["racket"].left=tmpRL } } } }
//wall and racket check function outCHK(){ if (ballX < 16){ballX=32-ballX;ballDX=-ballDX} if (ballX > 401){ballX=802-ballX;ballDX=-ballDX} if (ballY < 16){ballY=32-ballY;ballDY=-ballDY} if (ballY >= 272){ if (missFLG==0){ tmpX=(ballDX/ballDY)*(272-ballY)+ballX if (tmpX >= tmpRL-12){ if (tmpX <= tmpRL+42){ ballY=272;ballDY=-ballDY ballX=tmpX ballRD=tmpX-tmpRL with (Math){ballDX=8*abs(ballDX)/ballDX} if (ballRD<-4){ballDX=-15} if (ballRD>36){ballDX=15} if (ballRD>=14){if (ballRD<=16){ballDX=-2}} if (ballRD>=17){if (ballRD<=20){ballDX=2}} if (ballRD>=0){if (ballRD<=4){ballDX=-4}} if (ballRD>=28){if (ballRD<=32){ballDX=4}} if (ballRD>=-4){if (ballRD<=-1){ballDX=-11}} if (ballRD>=33){if (ballRD<=36){ballDX=11}} } } if (ballDY>0){missFLG=1} }else{ if (ballY>290){missFLG=0;ballN=ballN-1;gameEnd()} } } } //block check function blkCHK(){ tmpY=ballY+4;tmpX=ballX+4 if (tmpY>=48){if (tmpY<=147){if (tmpX>=29){if (tmpX<=396){ with (Math) { ia=floor((tmpX-29)/46);ib=floor((tmpY-48)/20);ic=ib*8+ia } if (blsta[ic]<=4){ tmpbc=blsta[ic]+1 blsta[ic]=tmpbc tmpIDnc=ic+1 if (document.getElementById){ document.getElementById(tmpIDnc).style.backgroundColor = blcol[tmpbc] }else{ if (ieFLG==1){ document.all(tmpIDnc+9).style.backgroundColor = blcol[tmpbc] }else{ document.layers[tmpIDnc].bgColor=blcol[tmpbc] } } if (tmpbc==5){blclr=blclr+1} if (blclr >= 40){gameEnd()} if (ballDX>0){ iy=(ballDY/ballDX)*(29+46*ia-tmpX)+tmpY if (iy>48+20*ib+18){ tmpY1=48+20*ib+18 tmpX1=(ballDX/ballDY)*(48+20*ib+18-tmpY)+tmpX ballX=tmpX1-4;ballY=tmpY1-4 ballDY=-ballDY }else{ if (iy<44+20*ib){ tmpY1=48+20*ib tmpX1=(ballDX/ballDY)*(48+20*ib-tmpY)+tmpX ballX=tmpX1-4;ballY=tmpY1-4 ballDY=-ballDY }else{ tmpX1=29+46*ia tmpY1=(ballDY/ballDX)*(29+46*ia-tmpX)+tmpY ballX=tmpX1-4;ballY=tmpY1-4 ballDX=-ballDX } } }else{ iy=(ballDY/ballDX)*(29+46*ia+44-tmpX)+tmpY if (iy>48+20*ib+18){ tmpY1=48+20*ib+18 tmpX1=(ballDX/ballDY)*(48+20*ib+18-tmpY)+tmpX ballX=tmpX1-4;ballY=tmpY1-4 ballDY=-ballDY }else{ if (iy<44+20*ib){ tmpY1=48+20*ib tmpX1=(ballDX/ballDY)*(48+20*ib-tmpY)+tmpX ballX=tmpX1-4;ballY=tmpY1-4 ballDY=-ballDY }else{ tmpX1=29+46*ia+44 tmpY1=(ballDY/ballDX)*(29+46*ia+44-tmpX)+tmpY ballX=tmpX1-4;ballY=tmpY1-4 ballDX=-ballDX } } } } }}}} } //game end function gameEnd(){ gameFLG=0 loadFLG=0 if (document.getElementById){ document.SC.BL.value=ballN document.getElementById("starter").style.top=200 if (blclr >= 40){ document.getElementById("clrmes").style.top=150 endFLG=0 } if (ballN <= 0){ document.getElementById("ovrmes").style.top=160 endFLG=0 } }else{ if (ieFLG==1){ document.SC.BL.value=ballN starter.style.top=200 if (blclr >= 40){ clrmes.style.top=150 endFLG=0 } if (ballN <= 0){ ovrmes.style.top=160 endFLG=0 } }else{ document.layers["info"].document.forms[0].BL.value=ballN document.layers["starter"].visibility="SHOW" if (blclr >= 40){ document.layers["clrmes"].visibility="SHOW" endFLG=0 } if (ballN <= 0){ document.layers["ovrmes"].visibility="SHOW" endFLG=0 } } } } //Event init function onLD(){ document.onkeydown = keyDown document.onkeyup = keyUp if (document.getElementById){ document.getElementById("starter").style.top=200 document.getElementById("info").style.top=16 }else{ if (ieFLG==1){ starter.style.top=200 info.style.top=16 }else{ document.layers["starter"].visibility="SHOW" } } if (n4FLG!=0){document.captureEvents(Event.KEYDOWN|Event.KEYUP)} } //--> </SCRIPT> </HEAD> <BODY BGCOLOR="#E8FFE8" ONLOAD="onLD()""> <A NAME="t0"> <DIV ID="gamewindow" STYLE="position:absolute; background-color:#9999FF; top:16px; left:16px; width:394px; height:300px"> <LAYER CLIP="0,0,393,299" BGCOLOR="#000000"></LAYER> </DIV> <SCRIPT LANGUAGE="JavaScript"> <!-- for (ib=0; ib<5; ib++){ for (ia=0; ia<8; ia++){ tmpL=31+46*ia;tmpT=50+20*ib tmpIDn=ib*8+ia+1 if (n4FLG!=1){ document.write("<DIV ID='"+tmpIDn+"' STYLE='position:absolute; background-color:"+blcol[ib]+"; top:"+tmpT+"px; left:"+tmpL+"px; width:42; height:16; clip:rect(0,43,17,0)'></DIV>") }else{ document.write("<LAYER LEFT="+tmpL+" TOP="+tmpT+" CLIP='1,1,43,17' BGCOLOR='"+blcol[ib]+"'></LAYER>") } blsta[ib*8+ia]=ib } } //--> </SCRIPT> <DIV ID="ball" STYLE="position:absolute; top:270px; left:209px; width:8px; height:8px"> <DIV STYLE="position:absolute; top:0px; left:2px; background-color:#B0B0B0; width:4; height:8; clip:rect(0,3,7,0)"></DIV> <DIV STYLE="position:absolute; top:2px; left:0px; background-color:#B0B0B0; width:8; height:4; clip:rect(0,7,3,0)"></DIV> <DIV STYLE="position:absolute; top:1px; left:1px; background-color:#FFFFFF; width:6; height:6; clip:rect(0,5,5,0)"></DIV> </DIV> <DIV ID="racket" STYLE="position:absolute; top:280px; left:193px; background-color:#FFD700; width:100px; height:4px; clip:rect(0,39,3,0)"></DIV> <SCRIPT LANGUAGE="JavaScript"> <!-- if (n4FLG==1){ document.write('<LAYER NAME="ball" LEFT="209" TOP="270" CLIP="0,0,7,7"> <LAYER LEFT="2" TOP="0" CLIP="0,0,3,7" BGCOLOR="#B0B0B0"></LAYER><LAYER LEFT="0" TOP="2" CLIP="0,0,7,3" BGCOLOR="#B0B0B0"></LAYER><LAYER LEFT="1" TOP="1" CLIP="0,0,5,5" BGCOLOR="#FFFFFF"></LAYER></LAYER><LAYER NAME="racket" LEFT="193" TOP="280" CLIP="0,0,39,3" BGCOLOR="#B0B0FF"></LAYER><LAYER NAME="info" LEFT="416" TOP="16">') }else{ document.write('<DIV ID="info" STYLE="position:absolute; top:-1000px; left:416px">') } //--> </SCRIPT> <FONT size=22; color=#000044;face=><I><B>打砖块</B></I></FONT> <BR> <FONT size=5; color=#003F00;face=>适用于IE4.0+,Netscape等</FONT> <BR><P> <FORM NAME="SC"> 球的个数:<INPUT TYPE="text" NAME="BL" SIZE=5 VALUE = "3" ><BR><BR> 时 间:<INPUT TYPE="text" NAME="TM" SIZE=5 VALUE = "0" ><BR><BR> 打掉砖块:<INPUT TYPE="text" NAME="CL" SIZE=5 VALUE = "0" ><BR><BR> 得 分:<INPUT TYPE="text" NAME="SR" SIZE=5 VALUE = "0" ><BR><BR> <P><BR> </FORM> <SCRIPT LANGUAGE="JavaScript"> <!-- if (n4FLG==1){ document.write('</LAYER><LAYER NAME="clrmes" TOP=150 LEFT=160 visibility="HIDE">') }else{ document.write('</DIV><DIV ID="clrmes" STYLE="position:absolute; top:-1000px; left:160px; visibility:visible">') } //--> </SCRIPT> <FONT STYLE="font-size:24px" COLOR="#44CC44">ALL CLEAR!</FONT> <SCRIPT LANGUAGE="JavaScript"> <!-- if (n4FLG==1){ document.write('</LAYER><LAYER NAME="ovrmes" TOP=150 LEFT=160 visibility="HIDE">') }else{ document.write('</DIV><DIV ID="ovrmes" STYLE="position:absolute; top:-1000px; left:160px; visibility:visible">') } //--> </SCRIPT> <FONT STYLE="font-size:24px" COLOR="#CC4444">GAME OVER!</FONT> <SCRIPT LANGUAGE="JavaScript"> <!-- if (n4FLG==1){ document.write('</LAYER><LAYER NAME="starter" TOP=200 LEFT=90 visibility="HIDE"><FONT COLOR="#FFFFFF">') }else{ document.write('</DIV><DIV ID="starter" STYLE="position:absolute; top:-1000px; left:90px; color:#FFFFFF; visibility:visible">') } //--> </SCRIPT> 开始:START = S key<br> 方向键(小键盘):Left = 4 key<BR> Right = 6 key<BR> </BODY> </HTML> |