jQuery实现打字小游戏

<!DOCTYPE HTML>
<HTML>
 <HEAD><!--vh是能看见高度的100%-->
  <TITLE>jQuery实现打字小游戏t </TITLE>
  <meta charset="utf-8"/> 
  <style type="text/css">
      *{margin: 0;padding: 0;}
      #box{width: 100%;height: 100vh;background:url(img/bg11.jpg)no-repeat;background-size:100% 100%;overflow: hidden;}
      .score{width: 150px;height: 190px;background:url(img/fs.png)no-repeat;background-size:150px 190px;
      position: absolute;right: 10px;bottom: 20px;font-size: 40px;text-align: center;line-height: 150px;color: green;cursor: pointer;user-select: none;}
      .startorstop{width: 100%;height: 50px;position: absolute;bottom: 20px;}
      .btn{width: 130px;height: 50px;background: url(img/stop.png)no-repeat;background-size:130px 50px;float: left;text-align: center;line-height: 50px;cursor: pointer;user-select: none;font-weight: bold;color: green;}
      .start{margin: 0 20px;}

      .reload{width: 500px;height: 274px;background:url(img/sp1.png)no-repeat;background-size:500px 274px;margin: 0 auto;position: relative;top: -350px;cursor: pointer;user-select: none;}

      #game img{position: absolute;}
      #music_btn{width: 70px;height: 70px;position: absolute;left: 10px;top: 20px;cursor: pointer;user-select: none;}
      .tupian{width: 600px;height: 350px;background:url(img/lay.png)no-repeat;backgroung-size:600px 350px;position: relative;bottom: -400px;cursor: pointer;user-select: none;}
  </style>
 </HEAD>

 <BODY>
 <!--浏览器中的内容都是写在body中的-->
     <div id="box">
         <div id="game"></div>
         <div class="score">0</div>
         <div class="reload"></div>
         <div class="startorstop">
             <div class="btn stop">暂停游戏</div>
             <div class="btn start">开始游戏</div>
             <div class="btn quick">增加难度</div>
         </div>
         <div class="tupian"></div>
         <div id="btn"><img src="img/no.png" id="music_btn" /></div>
         <audio id="boss" src="music/Boss.mp3" loop="loop"></audio>
         <audio id="ok" src="music/ok.wav"></audio>
         <audio id="error" src="music/error.wav"></audio>
         <audio id="gameOver" src="music/gameOver.mp3"></audio>
         <audio id="yixing" src="http://sxyd.sc.chinaz.com/Files/DownLoad/sound1/201705/8738.wav"></audio>
     </div>

     <script type="text/javascript" src="js/jquery.js"></script>
     <script type="text/javascript">
         var chars =['A','B','C','D','E','F','G','H','T','J','K','L','M','N','O','P','Q','R','S','G','U','V','W','X','Y','Z'];
         //积分
         var score = 0;
         //默认游戏的状态
         var flag = true;
         //音乐
         var yixing = document.getElementById("yixing");
         var boss = document.getElementById("boss");
         var ok =  document.getElementById("ok");
         var error = document.getElementById("error");
         var gameOver = document.getElementById("gameOver");
         var start = $(".start");
         var f = true;//开始游戏的标识
         var speed = 1;
         var createImgInterval;
         var downImgInterval;
         //点击开始游戏按钮所执行的函数
         start.click(function(){
             flag = true;
             if(f){
               play(speed);
               f = false;
             }
         });
         //点击暂停按钮所执行的函数
         $(".stop").click(function(){
             if(flag){
               flag = false;
             }else{
               flag = true;
             }
         });
          //重新开始游戏
         $(".reload").click(function(){
           $(this).animate({top:"-350px"});
           $("#game").children().remove();
           score=0;
           $(".score").html(score);
           flag = true;
           f = true;
           speed = 1;
           play(speed);
         });
         //开始
         $(".tupian").click(function(){
             $(this).animate({bottom:"-400px"});
             play(speed);
         });
         //增加难度
         $(".quick").click(function(){
           if(!f){
             speed++;
             play(speed);
           }
         });
         //音乐
         $("#btn").click(function(){
             if(boss.paused){
                 boss.play();
                 $("#music_btn").attr("src","img/no.png");
             }else{
                 boss.pause();
                 $("#music_btn").attr("src","img/off.png");
             }
         });
         //createImg();
         function createImg(){
             if(flag){
               //随机创建
               var random = randomScope(0,25);
               var img = chars[random];
               var Dwidth = $(document).width();//获取浏览器的宽度
               var left = randomScope(Dwidth-100,100);
               $("#game").append("<img src='img/"+img+".png' width='80' height='100' style='left:"+left+"px; top:-100px;' />");
             }
         }

         function downImg(){
             if(flag){
                 var imgs = $("#game").children();//获取生成的所有字母
                 for(var i=0;i<imgs.length;i++){
                   var img = imgs[i];//当前字母
                   var Top = parseInt(img.style.top);//当前字母距离顶部的值
                   var Height = $("#box").height()-200;
                   if(Top<=Height){
                     img.style.top=(Top+2)+"px";
                   }else{
                     img.remove();
                     error.play();
                     score -= 10;
                     $(".score").html(score);
                     if(score == -100){
                       flag = false;
                       $(".reload").animate({"top":"-50px"});
                       gameOver.play();
                       window.clearInterval(createImgInterval);
                       window.clearInterval(downImgInterval);
                       return;
                     }

                   }

                 }
             }
         }

         $(window).keyup(function(e){
           var eve = window.event || e;//获取事件对象
           var imgs = $("#game").children();//获取所生成的字母
           var code = eve.keyCode;//获取用户按下的键值

           if(flag){
             for(var i =0;i<imgs.length;i++){
               var img = imgs[i];
               var imgSrc = img.src.split("/");
               var name = imgSrc[imgSrc.length-1].split(".")[0];
               if(name == chars[code-65]){
                 img.remove();
                 score+=10;
                 $(".score").html(score);
                 ok.play();
                 if(score == 200){
                   $(".tupian").animate({"bottom":"0px"});
                   yixing.play();
                   window.clearInterval(createImgInterval);
                   window.clearInterval(downImgInterval);
                 }
                 return;
               }
             }
           }
         });
         //play();
         //定时器
         function play(speed){
              createImgInterval = window.setInterval(createImg,1500-speed*50);
              downImgInterval = window.setInterval(downImg,50-speed/2); 
         }

         //随机范围方法
         function randomScope(minScope,maxScope){
             return Math.floor(Math.random()*(maxScope-minScope+1)+minScope);
         }
     </script>

 </BODY>
</HTML>

“`

实现的效果图:
这里写图片描述

这里写图片描述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值