网站首页 手机版
 注册 登录
您现在的位置: 畅无忧设计 >> 网页特效 >> 网页游戏 >> 正文
最新文章
· JS重现儿时经典美女拼图游戏
· 在线俄罗斯方块网页游戏程序
· JavaScript编写的打砖块网页游戏
· JavaScript实现碰壁反弹效果
· JavaScript 过河游戏
· 网页中的赛车游戏
· 蚁群算法js版
· 劲舞团练习工具
热门文章
 JavaScript编写的打砖块网页游戏
 JavaScript实现碰壁反弹效果
 蚁群算法js版
 JS重现儿时经典美女拼图游戏
 劲舞团练习工具
 JavaScript 过河游戏
 网页中的赛车游戏
 在线俄罗斯方块网页游戏程序
相关文章
在线俄罗斯方块网页游戏程序
JavaScript编写的打砖块网页游戏
来源:源码爱好者 更新时间:2011/1/26 10:07:40 阅读次数: 我要投稿
△运行 ☉预览 #复制 +收藏
特效代码:
<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=0

blcol[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>

△运行 ☉预览 #复制 +收藏
特效说明:

  打砖块网页游戏JavaScript代码,适用于IE4.0+,Netscape等,火狐也兼容。可以记录砖块打掉的个数,时间,得分等游戏控制:开始:START = S key;方向键(小键盘):Left = 4 key;Right = 6 key。

  • 上一篇文章:
  • 下一篇文章:
  • 关于我们 - 联系我们 - 广告服务 - 在线投稿 - 友情链接 - 网站地图 - 版权声明
    CopyRight 2008-2010, CWYDESIGN.COM - 畅无忧设计, Inc. All Rights Reserved
    滇ICP备09005765号