当前位置:首页 > 网页特效 > 游戏特效 >

反应能力测试游戏,你能坚持多久?

时间:2014-06-08 23:31 来源:互联网 作者:源码搜藏 收藏 推荐

运行代码 保存代码 复制代码 提示:您可以先修改部分代码再运行,保存代码功能在Firefox下无效。
  • 很有趣的一个反应能力测试游戏,用JS+DIV写的,用鼠标拖动中间的方块躲闪周围方块的围攻,不能碰到其它的方块和超出范围,否则你就死定了,据说美国空军的飞行员至少要坚持2分钟以上才行,不知道你能坚持多久?
  • <SCRIPT language=JavaScript type=text/javascript>
    isNS4 = (document.layers) ? true : false;
    isIE4 = (document.all  &&  !document.getElementById) ? true : false;
    isIE5 = (document.all  &&  document.getElementById) ? true : false;
    isNS6 = (!document.all  &&  document.getElementById) ? true : false;
    var curX, curY, curX2, curY2, boxX, boxY, moving=0, touch=0;
    var gametime=0, started=0, speed;
    var starttime, endtime, finaltime=0; 
    var enemyxdir = new Array(1,1,1,1);
    var enemyydir = new Array(1,1,1,1);
     
    if (isNS4 || isNS6){
    document.captureEvents(Event.MOUSEUP|Event.MOUSEDOWN|Event.MOUSEMOVE);
    }
    document.onmousedown = start;
    document.onmousemove = checkLocation;
    document.onmouseup = stop;
     
    function startclock() {var today = new Date(); starttime = today.getTime();}
    function endclock() {var today = new Date(); endtime = today.getTime();}
    function calctime() {var time = (endtime - starttime - 0)/1000; return time;}
     
    function giveposX(divname) {
     if (isNS4) var posLeft = document.layers[divname].left;
     else if (isIE4 || isIE5) var posLeft = document.all(divname).style.pixelLeft;
     else if (isNS6) var posLeft = parseInt(document.getElementById(divname).style.left + "");
     return posLeft;
    }
     
    function giveposY(divname) {
     if (isNS4) var posTop = document.layers[divname].top;
     else if (isIE4 || isIE5) var posTop = document.all(divname).style.pixelTop;
     else if (isNS6) var posTop = parseInt(document.getElementById(divname).style.top + "");
     return posTop;
    }
     
    function setposX(divname, xpos) {
     if (isNS4) document.layers[divname].left = xpos;
     else if (isIE4 || isIE5) document.all(divname).style.pixelLeft = xpos;
     else if (isNS6) document.getElementById(divname).style.left = xpos;
    }
     
    function setposY(divname, ypos) {
     if (isNS4) document.layers[divname].top = ypos;
     else if (isIE4 || isIE5) document.all(divname).style.pixelTop = ypos;
     else if (isNS6) document.getElementById(divname).style.top = ypos;
    }
     
    function givesize(divname, dimension) {
     var divsize = 0;
      if (dimension == 'y') {
       if (isNS4) divsize = document.layers[divname].clip.height;
       else if (isIE4 || isIE5) divsize = document.all(divname).style.pixelHeight;
       else if (isNS6) divsize = parseInt(document.getElementById(divname).style.height + "");
      }
      else if (dimension == 'x') {
       if (isNS4) divsize = document.layers[divname].clip.width;
       else if (isIE4 || isIE5) divsize = document.all(divname).style.pixelWidth;
       else if (isNS6) divsize = parseInt(document.getElementById(divname).style.width + "");
      }
     
     return divsize;
    }
     
    function checktouching(num) {
     var enemy = "enemy" + num + ""
     var difX = giveposX('box') - giveposX(enemy) - 0; // -0 converts to integer
     var difY = giveposY('box') - giveposY(enemy) - 0;
     
     if (difX > (-1 * givesize('box', 'x'))  &&  difX < givesize(enemy, 'x')  &&  difY > (-1 * givesize('box', 'y'))  &&  difY < givesize(enemy, 'y')) {
      touch = 1;
     }
     else touch = 0;
     
    }
     
    function movenemy(num,step_x,step_y){
     
     var enemy = "enemy" + num + ""
     var enemyx = givesize(enemy, 'x');
     var enemyy = givesize(enemy, 'y');
     
     if (giveposX(enemy) >= (450 - enemyx) || giveposX(enemy) <= 0) {
      enemyxdir[num] = -1 * enemyxdir[num];
      }
     if (giveposY(enemy) >= (450 - enemyy) || giveposY(enemy) <= 0) {
      enemyydir[num] = -1 * enemyydir[num];
      }
     
     var newposx = giveposX(enemy) + (step_x*enemyxdir[num]) + 0;
     var newposy = giveposY(enemy) + (step_y*enemyydir[num]) + 0;
     
     setposX(enemy, newposx);
     setposY(enemy, newposy);
     
     checktouching(num + "");
     if (touch == 1) {
      stop(); reset();
      }
    }
     
    function movenemies() {
     
     gametime = gametime + 1
     
     if (gametime >= 0  &&  gametime < 100) speed = 80;
     else if (gametime >= 100  &&   gametime < 200) speed = 60;
     else if (gametime >= 200  &&   gametime < 300) speed = 40;
     else if (gametime >= 300  &&   gametime < 400) speed = 30;
     else if (gametime >= 400  &&   gametime < 500) speed = 20;
     else speed = 10;
     // window.status = "speed:  " + speed + "   gametime: " + gametime;
     
     movenemy(0,-10,12);
     movenemy(1,-12,-20);
     movenemy(2,15,-13);
     movenemy(3,17,11);
     
     setTimeout(movenemies,speed);
    }
     
    function start(e) {
     
     if (started == 0) { movenemies();  startclock();  started = 1; }
     
     curX = (isNS4 || isNS6) ? e.pageX : window.event.x ;
        curY = (isNS4 || isNS6) ? e.pageY : window.event.y ;
     
     curX2 = eval(curX - 40);
     curY2 = eval(curY - 40);
     
     boxX = eval(curX - 20);
     boxY = eval(curY - 20);
     
     var boxleft = giveposX('box');
     var boxtop = giveposY('box');
     
     if (curX > boxleft  &&  curX2 < boxleft  &&  curY > boxtop  &&  curY2 < boxtop) {
     
      moving = 1;
      setposX('box', boxX);
      setposY('box', boxY);
     
      if (isNS4 || isNS6){
      document.captureEvents(Event.MOUSEMOVE);
      }
     }
    }
     
    function stop(e){
        moving=0;
     if (isNS4 || isNS6){
     document.releaseEvents(Event.MOUSEMOVE);
     }
    }
     
    function reset(e){
        endclock();
     moving=0;
     if (isNS4 || isNS6){
      document.releaseEvents(Event.MOUSEMOVE);
      }
     if (finaltime == 0) {
      finaltime = calctime();
      window.alert('还要努力哦!你只坚持了 ' + finaltime + ' 秒……');
     
    //  var entername = window.confirm('Enter your name?');
    //   if (entername) {
    //   window.open("?" + finaltime,'winwin','width=300,height=500,left=40,top=40,status=1,resizable');
    //   document.location.reload();
    //   }
    //   else document.location.reload();
       document.location.reload();
      }
    }
     
    function checkLocation(e){
      curX = (isNS4 || isNS6) ? e.pageX : window.event.x ;
      curY = (isNS4 || isNS6) ? e.pageY : window.event.y ;
      boxX = eval(curX - 20);
      boxY = eval(curY - 20);
     checktouching('1');
     if (moving == 1  &&  touch == 0){
       setposX('box',boxX);
       setposY('box',boxY);
       if (curY > 69  &&  curX > 69  &&  curY < 381  &&  curX < 381) return false;
       else stop(); reset();
     }
     else if (touch == 1){
     stop(); reset();
     }
     
    }
    </SCRIPT>
由源码搜藏网整理,转载请注明出处https://www.codesocang.com/tx-youxi/8627.html

游戏特效下载排行

最新文章