欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

原生js實(shí)現(xiàn)打字動畫游戲

 更新時(shí)間:2017年02月04日 11:24:33   作者:Atom_L  
本文主要分享了原生js實(shí)現(xiàn)打字動畫游戲的示例代碼。具有很好的參考價(jià)值,下面跟著小編一起來看下吧

這是昨天用原生的js寫的打字動畫游戲,主要用的間歇定時(shí)器,對象,還有Math方法,感覺還行,主要看消除字母的時(shí)間快慢,但是也有bug,就是字母都是一次性生成的,所以一開始,看起來感覺會有種爆炸的感覺,如果能夠一次性生成一批,然后分批往下掉就好了,求大神幫忙改改,大家也可以參考參考。

<!DOCTYPE html>
<html>
<head lang="en">
 <meta charset="UTF-8">
 <title></title>
 <style>
  body,button{
   margin: 0;
   padding: 0;
  }
  body {
   background: #333;
  }
  #game {
   width: 400px;
   margin: 0 auto;
  }
  #start {
   width: 80px;
   height: 40px;
  }
  span {
   margin: 20px;
   color: white;
  }
  .letter {
   position: absolute;
   color: yellow;
   font: bold 30px "Arial";
  }
 </style>
 <script>
  window.onload= function () {
   var start = document.getElementById("start");
   var scroll = document.getElementById("scroll");
   var time = document.getElementById("time");
   var g = 1 ;//Gravity
   var timenum = 0 ;//時(shí)間的計(jì)數(shù)
   var num = 0 ;//成績的計(jì)數(shù)
   var gameover = false ;
   var timeandtime = null;
   var letters = null ;
   //字母放在一個(gè)字符串里面,隨機(jī)選取
   var str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
   //點(diǎn)擊開始按鈕,字母會自動生成,從頂部,以隨機(jī)速度落下
   //用戶操作:按鈕對應(yīng)字母的按鈕,然后字母就會消失
   //用戶沒有點(diǎn)擊到的按鈕到達(dá)底部以后會回到頂上重新落下;
   //用戶清除所有字母后,彈出對話框,顯示分?jǐn)?shù)和文字。
   //封裝一個(gè)對象,里面包含獲取事件對象,頁面位置,清除冒泡,獲取事件目標(biāo)的兼容性方法
   var eventUtil = {
    getEvent: function (event) {
     return event || window.event;
    },
    getPageX: function (event) {
     return event.pageX || event.clientX + document.documentElement.scrollLeft;
    },
    getPageY: function (event) {
     return event.pageY || event.clientY + document.documentElement.scrollTop;
    },
    stopPropagation: function (event) {
     if (event.stopPropagation) {
      event.stopPropagation();
     } else {
      event.cancelBubble = true;
     }
    },
    getTarget: function (event) {
     return event.target || event.srcElement;
    }
   };
   start.onclick= function () {
    for(var i = 0 ;i<26;i++){
     new letter();
    }
    letters = document.body.children;//將頁面中所有的div全部放入一個(gè)偽數(shù)組中,第一個(gè)除外,屬于game,因此遍歷從1開始
    //在鍵盤上,按下對應(yīng)的字母鍵,字母會立即消失,同時(shí)分?jǐn)?shù)會增加,并且在上面重新生成;
    document.onkeydown = function (event) {
     var evt = eventUtil.getEvent(event);
     var keychar = String.fromCharCode(evt.keyCode);//將按下的字母鍵盤碼轉(zhuǎn)換成直接的大寫字母
     for(var i = 1 ;i<letters.length;i++){
      if(keychar===letters[i].innerHTML){
       num++;
       scroll.innerHTML = num;
       document.body.removeChild(letters[i]);
      }
     }
    }
    timeandtime=setInterval(function () {
     timenum = timenum + 1 ;
     console.log(letters);
     if(letters.length==1){//當(dāng)偽數(shù)組的長度只有一個(gè)時(shí),那么游戲就結(jié)束
      gameover = true ;
      clearInterval(timeandtime);
      alert("用時(shí)"+timenum+"秒,再接再厲!突破10秒!");
     } else {
      time.innerHTML = timenum;
     }
    },1000)
   }
   //封裝函數(shù)
   function letter(){
    this.x=Math.random()*900+100; //設(shè)置位置在100-1000之間
    this.y=0;
    this.speedY = Math.random()*4+1; //速度隨機(jī)設(shè)置在1-5之間
    this.value = str[parseInt(Math.random()*25)]; //在26個(gè)字母中隨機(jī)生成一個(gè)字母
    var letDiv = document.createElement("div");
    letDiv.className = "letter";
    letDiv.style.top = this.y+"px";
    letDiv.style.left = this.x+ "px";
    letDiv.innerHTML = this.value;
    document.body.appendChild(letDiv);
    //字母往下掉
    var that = this ;
    this.timer=setInterval(function () {
     //leader = leader + step;
     that.y = that.y + that.speedY;
     if(that.y>=client().height-letDiv.offsetHeight){
      that.y = 0;
      that.x = Math.random()*900+100;
     }
     if(!gameover){
      letDiv.style.left = that.x + "px";
      letDiv.style.top = that.y + "px";
     } else {
      clearInterval(that.timer);
     }
    },15)
   }
   // 獲取可視窗口的寬度和高度窗,兼容性問題
   function client() {
    return {
     width: window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth || 0,
     height: window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight || 0
    };
   }
  }
 </script>
</head>
<body>
<div id="game">
 <button id="start">開始</button>
 <span>得分:<i id="scroll">0</i></span>
 <span>計(jì)時(shí):<i id="time">0</i></span>
</div>
</body>
</html>

以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時(shí)也希望多多支持腳本之家!

相關(guān)文章

  • JS樣式獲取的封裝方法實(shí)例詳解

    JS樣式獲取的封裝方法實(shí)例詳解

    這篇文章主要介紹了JS樣式獲取的封裝方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-09-09
  • 原生JS實(shí)現(xiàn)音樂播放器

    原生JS實(shí)現(xiàn)音樂播放器

    這篇文章主要為大家詳細(xì)介紹了原生JS音樂播放器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-01-01
  • javaScript實(shí)現(xiàn)網(wǎng)頁版的彈球游戲

    javaScript實(shí)現(xiàn)網(wǎng)頁版的彈球游戲

    這篇文章主要為大家詳細(xì)介紹了javaScript實(shí)現(xiàn)網(wǎng)頁版的彈球游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • 微信小程序自定義菜單切換欄tabbar組件代碼實(shí)例

    微信小程序自定義菜單切換欄tabbar組件代碼實(shí)例

    這篇文章主要介紹了微信小程序自定義菜單切換欄tabbar組件代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • Bootstrap每天必學(xué)之面板

    Bootstrap每天必學(xué)之面板

    Bootstrap每天必學(xué)之面板,面板(Panels)是Bootstrap框架新增的一個(gè)組件,其主要作用就是用來處理一些其他組件無法完成的功能,對面板感興趣的小伙伴們可以參考一下
    2015-11-11
  • javascript禁止超鏈接跳轉(zhuǎn)的方法

    javascript禁止超鏈接跳轉(zhuǎn)的方法

    這篇文章主要介紹了javascript禁止超鏈接跳轉(zhuǎn)的方法,結(jié)合實(shí)例分析了JavaScript事件機(jī)制與鼠標(biāo)事件的響應(yīng)操作技巧,需要的朋友可以參考下
    2016-02-02
  • js中hash和ico的關(guān)聯(lián)分析

    js中hash和ico的關(guān)聯(lián)分析

    這篇文章主要介紹了js中hash和ico的關(guān)聯(lián)分析,以實(shí)例形式分析了location.hash與ico的加載順序關(guān)系,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-02-02
  • js數(shù)組案例之五子棋游戲

    js數(shù)組案例之五子棋游戲

    這篇文章主要為大家詳細(xì)介紹了js數(shù)組案例之五子棋游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • JavaScript類的繼承多種實(shí)現(xiàn)方法

    JavaScript類的繼承多種實(shí)現(xiàn)方法

    這篇文章主要介紹了JavaScript類的繼承多種實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • Javascript實(shí)現(xiàn)蘋果懸浮虛擬按鈕

    Javascript實(shí)現(xiàn)蘋果懸浮虛擬按鈕

    本文給大家分享的是使用javascript實(shí)現(xiàn)仿制蘋果的懸浮虛擬按鈕的代碼,非常的簡單,給大家一個(gè)思路,大家可以根據(jù)自己的情況自由擴(kuò)展。
    2016-04-04

最新評論