<strike id="gqgw6"><tr id="gqgw6"></tr></strike>
<button id="gqgw6"><strong id="gqgw6"></strong></button>
  • <option id="gqgw6"></option>
    <button id="gqgw6"><dl id="gqgw6"></dl></button>
    <dfn id="gqgw6"></dfn>
    \r\n<\/canvas><\/p>\r\n回到博客首頁<\/a><\/p>\r\n\r\n   鼠標(biāo)X:<\/span>\r\n鼠標(biāo)Y:<\/span>\r\n小飛機數(shù):<\/span>\r\n子彈數(shù):<\/span>\r\n打中:<\/span>\r\n生成飛機時間:<\/span>\r\n\r\n<\/p>\r\n

    亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

    首頁 微信小程式 微信開發(fā) html5實現(xiàn)微信打飛機遊戲代碼分享

    html5實現(xiàn)微信打飛機遊戲代碼分享

    Mar 21, 2017 pm 03:28 PM
    html5

    這篇文章主要介紹了html5實現(xiàn)微信打飛機遊戲,需要的朋友可以參考下

    html5實現(xiàn)微信的打飛機遊戲,利用這個小遊戲?qū)W習(xí)一個HTML5吧,這是開發(fā)WEB的一個方向

    程式碼如下:

    // JavaScript Document
    var c = document.getElementById("dotu");
    var cxt = c.getContext("2d");
    var img = newImg("./assets/bg_01.jpg");
    var fps;
    cxt.drawImage(img,0,0,480,800);
    
    var flivverLog = 0;
    var flivver1 = newImg("./assets/flivver.png");
    var flivver2 = newImg("./assets/flivver2.png");
    var flivver3 = newImg("./assets/flivver3.png");
    
    // 用于記錄游戲的時間,越到后面越快
    var time1 = 0;
    var time2 = 80;
    
    // 積分
    var jifen = 0;
    
    function getSudu(){
       var number = parseInt(Math.random()*10);
       if(number < 5 && number > 0){
           return number;
       }
       return 1;
    }
    // 飛機的對象
    function flivverObj(hp,ewidth,eheight,eimg,esudu){
       // 隨機的X
       this.x = parseInt(Math.random()*460+1);
       this.y = 0;
       // 血量
       this.hp = hp;
       // 挨打   
       this.hit = 0;
       // 是否死亡
       this.over = 0;
    
       this.width = ewidth;
       this.height = eheight;
       this.img = eimg;
       this.sudu = esudu;
    }
    
    // 獲取飛機
    function getFlivver(type){
       switch(type){
           case 1:
               return new flivverObj(100,50,30,flivver1,getSudu());
           case 2:
               return new flivverObj(500,70,90,flivver2,getSudu());
           case 3:
               return new flivverObj(1000,110,170,flivver3,getSudu());
       }
    }
    function cartridge(x,y){
       this.x = x;
       this.y = y; 
    }
    
    function gameover(){
       window.clearTimeout(fps);
       //$(&#39;#dotu&#39;).fadeOut();
       $(&#39;.content&#39;).css(&#39;position&#39;,&#39;relative&#39;);
       $(&#39;.content&#39;).append(&#39;<span style="position:absolute; top:5px; left:2px; font-size:150px; color:#cc0000;  text-align:center" id="sil"></span>&#39;);
       $(&#39;#sil&#39;).html(&#39;你&#39;).hide().fadeIn(1000,function(){
           $(this).html(&#39;你屎&#39;).hide().fadeIn(1000,function(){
               $(this).html(&#39;<a href="javascript:location.reload();" style="color:#cc0000" title="重新開始">你屎了</a>
    &#39; + jifen  + &#39; 分&#39;).hide().fadeIn();
           }); 
       });
    }
    
    (function(cxt){
       var dotu = {nums:0};
       // 用于存放小飛機
       var flivver = new Array();
       var flivverImg = newImg("./assets/flivver.png");
       // 自己
       var me = {x:240,y:750};
       var meImg = newImg(&#39;assets/me.png&#39;);
       // 子彈
       var cartridges = new Array();
       var cartridgeImg = newImg(&#39;./assets/cartridge.png&#39;);
    
       var boo1 = newImg(&#39;./assets/boo1.png&#39;);
       var over = newImg(&#39;./assets/over.png&#39;);
       // 
       dotu.update = function(){
    
           dotu.setTimes();
           // 設(shè)置背景
           dotu.setBg();
           // 設(shè)置小飛機
           dotu.setFlivver();
           // 畫自己
           dotu.setMe();
           // 子彈
           dotu.cartridge();
    
    
           cxt.font = "italic 20px 微軟雅黑";
           cxt.strokeText("積分:" + jifen, 10, 30);
    
           $(&#39;#fjs&#39;).html(flivver.length);
           $(&#39;#zds&#39;).html(cartridges.length);
           $(&#39;#scfj&#39;).html("1000/" + time2 + " 毫秒");
       }
    
       dotu.setTimes = function(){
           time1++ ;
           // 100 秒 1個檔位
           if(time1 == 1000){
               time1 = 0;
               time2 = (time2 == 20) ? 20 : time2 - 20;
           }
    
       }
    
    
       /**
        * 設(shè)置移動的背景
        */
       dotu.setBg = function(){
           dotu.nums++;
           if(dotu.nums == 800){
               dotu.nums = 0;  
           }
           // 畫布的背景
           cxt.drawImage(img,0,dotu.nums,480,800);
           cxt.drawImage(img,0,dotu.nums - 800,480,800);
       }
    
       dotu.setFlivver = function(){
           // 生成飛機
           if(dotu.nums % time2 == 0){
               flivverLog++;
               if(flivverLog % 6 == 0){
                   flivver.push(getFlivver(2));
               }else if(flivverLog % 13 == 0){
                   flivver.push(getFlivver(3));
               }else{
                   flivver.push(getFlivver(1));
               }
    
           }
    
           for(a in flivver){
    
    
    
               flivver[a].y += flivver[a].sudu;
               // 如果超出屏幕將該小飛機刪除
               if(flivver[a].y > 780){
                   flivver.splice(a, 1);
               }
               // 將小飛機畫到畫布上
    
    
               // 小飛機死亡
               if(flivver[a].over > 0){
                   flivver[a].over --;
    
                   if(flivver[a].over > 20){
                       cxt.drawImage(boo1,flivver[a].x + flivver[a].width/2 - 20  ,flivver[a].y + flivver[a].height / 2 -10,41,39);
                   }else if(flivver[a].over > 2){
                       cxt.drawImage(over,flivver[a].x + flivver[a].width/2 - 20 ,flivver[a].y + flivver[a].height / 2 -10,40,43);
                   }else{
                       flivver.splice(a, 1);
                   }
    
    
    
               }else{
                   cxt.drawImage(flivver[a].img,flivver[a].x,flivver[a].y,flivver[a].width,flivver[a].height);
                   // 判斷自己是否死亡
                   if( me.x > (flivver[a].x - flivver[a].width + 20) && (me.x) <(flivver[a].x + flivver[a].width - 20) && (me.y) < (flivver[a].y + flivver[a].height + 20) && (me.y + 72) > (flivver[a].y - 20)){
                       gameover();
                   }
    
                   if(flivver[a].hit > 0){
                       cxt.drawImage(boo1,flivver[a].x + flivver[a].width/2 - 20 ,flivver[a].y + flivver[a].height / 2 -10,41,39);
                       //cxt.drawImage(boo1,flivver[a].x + 5 ,flivver[a].y,41,39);
                       flivver[a].hit--;
                   }
               }
    
           }
       }
    
       // 更新自己的距離
       dotu.setMe = function(){
           cxt.drawImage(meImg,me.x,me.y,64,72);
       }
    
       // 更新子彈方法
       dotu.cartridge = function(){
           if(dotu.nums % 10 == 0){
               cartridges.push(new cartridge(me.x + 30,me.y));
           }
    
           for(i in cartridges){
               // 飛到頂部就將OBJ刪除掉
               if(cartridges[i].y < 0){
                   cartridges.splice(i, 1);
                   continue;
               }
    
    
               cartridges[i].y -= 20;
               // 將小飛機畫到畫布上
               cxt.drawImage(cartridgeImg,cartridges[i].x,cartridges[i].y,7,17);
    
               // 子彈碰到飛機的情況
               for(j in flivver){
                   if(flivver[j].over > 0){
                       continue;
                   }
                   if(cartridges[i].x > flivver[j].x && cartridges[i].x < flivver[j].x+ flivver[j].width && cartridges[i].y >  flivver[j].y && cartridges[i].y -flivver[j].height < flivver[j].y){
    
                       flivver[j].hit = 10;
                       $(&#39;#isdz&#39;).html(&#39;打中了編號&#39; + j);
    
                       if(flivver[j].hp > 1){
                           flivver[j].hp -= 80;
                       }else{
                           flivver[j].over = 40;
                           jifen += 50000;
                       }
                       // 子彈消失
                       cartridges.splice(i, 1);
                       break;
                   }
               }
           }
       }
    
       // 綁定鼠標(biāo)事件
       c.addEventListener(&#39;mousemove&#39;, function onMouseMove(evt) {
           me.x = evt.layerX - $(&#39;#dotu&#39;).offset().left - 32;
           me.y = evt.layerY -  36 ;
           $(&#39;#sbX&#39;).html(me.x);
           $(&#39;#sbY&#39;).html(me.y);
       });
    
       fps = setInterval(dotu.update, 1000/100); 
    }(cxt))
    
    
    function newImg(src){
       var obj = new Image();
       obj.src = src;
       return obj;
    }
    
    //setInterval(h.update, 1000/65);

    程式碼如下:

    <!DOCTYPE html>
    <html xmlns="<a href="http://www.w3.org/1999/xhtml">http://www.w3.org/1999/xhtml</a>">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>打飛機 - 多途</title>
    <script type="text/javascript" src="./jquery.min.1.7.1.js"></script>
    <style>
    body{padding:0; margin:0; text-align:center}
    .content{border:1px #000 solid; width:480px; margin:0 auto; height:800px; display:block; font-size:72px;}
    .info,.blog{border:1px #000 solid; position:fixed; top:5px; right:5px; width:150px; text-align:left}
    .blog{ left:10px; background:#000; text-align:center; width:100px}
    .blog a{ color: #FFF; text-decoration:none; font-size:15px; }
    </style>
    </head>
    <body>
    <p class="content"><canvas id="dotu" width="480" height="800"></canvas></p>
    <p class="blog"><a href="/">回到博客首頁</a></p>
    <p class="info">
       鼠標(biāo)X:<span id="sbX"></span>
    鼠標(biāo)Y:<span id="sbY"></span>
    小飛機數(shù):<span id="fjs"></span>
    子彈數(shù):<span id="zds"></span>
    打中:<span id="isdz"></span>
    生成飛機時間:<span id="scfj"></span>
    
    </p>
    <script type="text/javascript" src="./dotu_game.js"></script>
    </body>
    </html>


    以上是html5實現(xiàn)微信打飛機遊戲代碼分享的詳細(xì)內(nèi)容。更多資訊請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

    本網(wǎng)站聲明
    本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡(luò)admin@php.cn

    熱AI工具

    Undress AI Tool

    Undress AI Tool

    免費脫衣圖片

    Undresser.AI Undress

    Undresser.AI Undress

    人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

    AI Clothes Remover

    AI Clothes Remover

    用於從照片中去除衣服的線上人工智慧工具。

    Clothoff.io

    Clothoff.io

    AI脫衣器

    Video Face Swap

    Video Face Swap

    使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

    熱工具

    記事本++7.3.1

    記事本++7.3.1

    好用且免費的程式碼編輯器

    SublimeText3漢化版

    SublimeText3漢化版

    中文版,非常好用

    禪工作室 13.0.1

    禪工作室 13.0.1

    強大的PHP整合開發(fā)環(huán)境

    Dreamweaver CS6

    Dreamweaver CS6

    視覺化網(wǎng)頁開發(fā)工具

    SublimeText3 Mac版

    SublimeText3 Mac版

    神級程式碼編輯軟體(SublimeText3)

    熱門話題

    Laravel 教程
    1597
    29
    PHP教程
    1488
    72
    使用HTML5服務(wù)器序列事件處理重新連接和錯誤。 使用HTML5服務(wù)器序列事件處理重新連接和錯誤。 Jul 03, 2025 am 02:28 AM

    使用HTML5SSE時,處理重連和錯誤的方法包括:1.了解默認(rèn)重連機制,EventSource默認(rèn)在連接中斷後3秒重試,可通過retry字段自定義間隔;2.監(jiān)聽error事件以應(yīng)對連接失敗或解析錯誤,區(qū)分錯誤類型並執(zhí)行相應(yīng)邏輯,如網(wǎng)絡(luò)問題依賴自動重連、服務(wù)器錯誤手動延遲重連、認(rèn)證失效刷新token;3.主動控制重連邏輯,如手動關(guān)閉並重建連接、設(shè)置最大重試次數(shù)、結(jié)合navigator.onLine判斷網(wǎng)絡(luò)狀態(tài)以優(yōu)化重試策略。這些措施可提升應(yīng)用穩(wěn)定性與用戶體驗。

    將CSS和JavaScript與HTML5結(jié)構(gòu)有效整合。 將CSS和JavaScript與HTML5結(jié)構(gòu)有效整合。 Jul 12, 2025 am 03:01 AM

    HTML5、CSS和JavaScript應(yīng)通過語義化標(biāo)籤、合理加載順序與解耦設(shè)計高效結(jié)合。 1.使用HTML5語義化標(biāo)籤如、提升結(jié)構(gòu)清晰度與可維護(hù)性,利於SEO和無障礙訪問;2.CSS應(yīng)置於中,使用外部文件並按模塊拆分,避免內(nèi)聯(lián)樣式與延遲加載問題;3.JavaScript推薦放在前引入,使用defer或async異步加載以避免阻塞渲染;4.減少三者間強依賴,通過data-*屬性驅(qū)動行為、類名控制狀態(tài),統(tǒng)一命名規(guī)範(fàn)提升協(xié)作效率。這些方法能有效優(yōu)化頁面性能與團(tuán)隊協(xié)作。

    使用HTML5服務(wù)器量事件(SSE)接收實時數(shù)據(jù)。 使用HTML5服務(wù)器量事件(SSE)接收實時數(shù)據(jù)。 Jul 02, 2025 pm 04:46 PM

    Server-SentEvents(SSE)是HTML5提供的服務(wù)器向瀏覽器推送實時更新的輕量級方案。它通過HTTP長連接實現(xiàn)單向通信,適合股票行情、通知等場景。使用時創(chuàng)建EventSource實例並監(jiān)聽消息:consteventSource=newEventSource('/stream');eventSource.onmessage=function(event){console.log('收到消息:',event.data);};服務(wù)器端需設(shè)置Content-Type為text/event

    為現(xiàn)代頁面宣布正確的HTML5 Doctype。 為現(xiàn)代頁面宣布正確的HTML5 Doctype。 Jul 03, 2025 am 02:35 AM

    Doctype是告訴瀏覽器用哪種HTML標(biāo)準(zhǔn)解析頁面的聲明,現(xiàn)代網(wǎng)頁只需在HTML文件最開頭寫。其作用是確保瀏覽器以標(biāo)準(zhǔn)模式而非怪異模式渲染頁面,且必須位於第一行,前面不能有空格或註釋;正確寫法僅有一種,不推薦使用舊版本或其他變體;其他如charset、viewport等應(yīng)放在部分。

    用HTML5語義標(biāo)記和微數(shù)據(jù)改善SEO。 用HTML5語義標(biāo)記和微數(shù)據(jù)改善SEO。 Jul 03, 2025 am 01:16 AM

    使用HTML5語義標(biāo)籤和Microdata可提升SEO,因為它幫助搜索引擎更好理解頁面結(jié)構(gòu)與內(nèi)容含義。 1.使用HTML5語義標(biāo)籤如、、、、和來明確頁面區(qū)塊功能,有助於搜索引擎建立更準(zhǔn)確的頁面模型;2.添加Microdata結(jié)構(gòu)化數(shù)據(jù)標(biāo)註具體內(nèi)容,例如文章作者、發(fā)布日期、商品價格等,使搜索引擎能識別信息類型並用於富媒體摘要展示;3.注意正確使用標(biāo)籤避免混淆、避免重複標(biāo)記、測試結(jié)構(gòu)化數(shù)據(jù)有效性、定期更新以適應(yīng)schema.org的變化,並結(jié)合其他SEO手段長期優(yōu)化。

    構(gòu)建HTML5文檔的最佳實踐是什麼? 構(gòu)建HTML5文檔的最佳實踐是什麼? Jun 26, 2025 am 01:03 AM

    要構(gòu)建規(guī)范清晰的HTML5文檔,需遵循以下最佳實踐:1.使用標(biāo)準(zhǔn)的文檔類型聲明;2.構(gòu)建基本骨架包括、、三個標(biāo)籤並註意字符集、標(biāo)題和腳本位置;3.利用語義化標(biāo)籤如、、提升可訪問性和SEO;4.合理嵌套標(biāo)題層級,確保結(jié)構(gòu)清晰且每個頁面只有一個。這些步驟有助於提高代碼質(zhì)量、協(xié)作效率及用戶體驗。

    解釋html5`  vs` '元素。 解釋html5` vs` '元素。 Jul 12, 2025 am 03:09 AM

    是塊級元素,適合佈局;是內(nèi)聯(lián)元素,適合包裹文字內(nèi)容。 1.獨占一行,可設(shè)置寬高和邊距,常用於結(jié)構(gòu)佈局;2.不換行,大小由內(nèi)容決定,適用於局部文本樣式或動態(tài)操作;3.選擇時應(yīng)根據(jù)內(nèi)容是否需獨立空間判斷;4.不可嵌套在內(nèi),不適合做佈局;5.優(yōu)先使用語義化標(biāo)籤以提升結(jié)構(gòu)清晰度與可訪問性。

    使用HTML5地理位置API獲取用戶當(dāng)前位置。 使用HTML5地理位置API獲取用戶當(dāng)前位置。 Jul 02, 2025 pm 05:03 PM

    使用HTML5GeolocationAPI獲取用戶位置時,必須先獲得用戶授權(quán),且需在合適時機請求並說明用途;基本方法為navigator.geolocation.getCurrentPosition(),包含成功回調(diào)、錯誤回調(diào)和配置參數(shù);常見失敗原因包括權(quán)限被拒、瀏覽器不支持、網(wǎng)絡(luò)問題等,應(yīng)提供替代方案和明確提示。具體建議如下:1.在用戶操作觸發(fā)時請求權(quán)限,如點擊按鈕;2.使用enableHighAccuracy、timeout、maximumAge等參數(shù)優(yōu)化定位效果;3.錯誤處理應(yīng)區(qū)分不同錯誤

    See all articles