• <sub id="h4knl"><ol id="h4knl"></ol></sub>
    <sup id="h4knl"></sup>
      <sub id="h4knl"></sub>

      <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
      1. <strong id="h4knl"></strong>

      2. JavaScript 小型打飛機游戲實現和原理說明

        時間:2024-08-18 04:45:20 JavaScript 我要投稿
        • 相關推薦

        JavaScript 小型打飛機游戲實現和原理說明

          JavaScript 小型打飛機游戲實現和原理說明

        JavaScript 小型打飛機游戲實現和原理說明

          玩法說明:上下左右控制移動,空格發彈。 每打中一個敵機就加100分,每提升5000分,玩家的飛機的一次發彈數就加一,最多四,被敵機撞到或者讓敵機飛到底部就算輸。。。。

          演示代碼:http://demo./js/FlyBeat/

          游戲目前的功能還是比較簡單的。。。。貌似就貼個源碼不太好,所以這次還是寫寫思路。。。

          游戲主要分為4個js文件,4個js文件分別包含4個類。

          1:飛機類---Flyer

          復制代碼 代碼如下:

          //飛機對應的dom元素

          this.dom = null;

          //是否活著

          this.isLive = true;

          //是否移動中

          this.isMove = false;

          //移動的ID

          this.moveId = null;

          //是否發彈中

          this.isSend = false;

          //目前已經發了多少顆彈(存在屏幕顯示)

          this.nowBullet = 0;

          //游戲背景Dom

          gamePanel : null,

          //游戲背景寬度

          gameWidth : 0,

          //游戲背景高度

          gameHeight : 0,

          //飛機移動速度

          movepx : 10,

          //飛機移動頻率

          movesp : 30,

          //飛機子彈級別

          bulletLevel : 1,

          //最大發彈數(存在屏幕顯示)

          maxBullet : 12,

          //方向鍵值對應

          keyCodeAndDirection : {

          37 : "left",

          38 : "up",

          39 : "right",

          40 : "down"

          },

          以上是飛機應該有的屬性。。。。

          飛機除了有固定的一些屬性之外,其實還應該有血量這些的,但這個是簡陋版嘛,你可以自己添加。

          更應該會有移動,發射子彈,爆炸等方法。

          移動: 其實就是捕獲鍵盤事件,如果是簡單的按下鍵盤的左,然后飛機就向左移動幾個像素,你會發覺,飛機移動起來很生硬,或者說是操作延遲,特別是你想按住鍵盤左的時候,它移動的時候,延遲得很嚴重,操作不流暢。所以一般都是:當你按下鍵盤時,調用一個setInterval函數來讓飛機不斷的移動,當釋放鍵盤的時候,移動停止,這樣移動就很流暢了。

          發射子彈: 其實就是用戶按了空格,然后觸發一個鍵盤事件,此事件就是生成一個子彈Bullet類的對象,然后讓它飛出去。此類后面會有說到。

          爆炸: 當飛機撞到敵機的時候,飛機就會觸發一個爆炸事件,結束游戲。當然,這個檢測飛機是否撞到敵機,是在敵機那里檢測。

          這些是一些基本事件。還有擴展的事件。。可以自己添加

          2:子彈類--Bullet

          復制代碼 代碼如下:

          //子彈Dom元素

          this.dom = null;

          //子彈移動速度

          movepx : 8,

          //子彈移動頻率

          movesp : 10,

          子彈最基本的兩個方法:移動與檢測是否打中敵機

          移動:子彈的移動簡單很多,就一直往上跑,top一直減就OK了。

          檢測是否打中敵機:將敵機的列表傳進方法中,遍歷敵機,檢測子彈與敵機是否有碰撞,有則敵機爆炸,沒有則跳過。

          3:敵機類--Enemy

          復制代碼 代碼如下:

          //敵機dom元素

          this.dom = null;

          //是否

          this.isLive = true;

          //敵機橫向移動速度

          movepx : 6,

          //敵機縱向移動速度

          movepy : 4,

          //敵機移動頻率

          movesp : 75,

          敵機的基本方法有:移動,是否撞到飛機Flyer玩家,爆炸

          移動:就是敵機如何移動,我是設置成敵機從上到下飛,讓后從左往又飛,撞到右邊盡頭,調頭飛。

          是否撞到飛機Flyer玩家:在敵機不斷的移動過程中,不斷的檢測飛機Flyer與敵機是否有交集,有則兩者爆炸,游戲結束,否則跳過。

          爆炸:就是敵機被子彈打中或者撞到飛機Flyer時觸發的事件。

          4:游戲控制類--Game

          其中包含一個擴展方法:從數組中刪除指定元素

          復制代碼 代碼如下:

          //擴展數組方法,刪除特定的值

          Array.prototype.remove = function(obj){

          for(var i=0,l=this.length;i < l;i++){

          if(this[i] == obj){

          this.splice(i,1);

          return this;

          }

          }

          throw "The Array has no this Obj";

          }

          其余的,都是些初始化敵機,飛機以及控制游戲流程的,還有一些修改分數,游戲結束之類的方法。這些沒啥好講。

          大致就這樣,游戲本身比較簡單,下面的源碼都有注釋,這次寫得比較詳細。。。有興趣的朋友,可以自己繼續完善。。。有啥問題,歡迎拍磚。。。多多指教。

          打包下載地址 /jiaoben/32660.html

        《&.doc》
        将本文的Word文档下载到电脑,方便收藏和打印
        推荐度:
        点击下载文档

        【JavaScript 小型打飛機游戲實現和原理說明】相關文章:

        JavaScript實現網頁刷新代碼段03-25

        關于ASP.NET使用JavaScript顯示信息提示窗口實現原理及代碼03-30

        常用排序算法之JavaScript實現代碼段03-10

        探討PHP函數的實現原理及性能04-01

        Javascript函數的定義和用法分析03-31

        關jQuery彈出窗口簡單實現代碼-javascript編程03-30

        有關javascript實現的多個層切換效果通用函數示例03-31

        JavaScript類定義原型方法的兩種實現的區別04-02

        對javascript的理解03-29

        在线咨询
        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码
      3. <sub id="h4knl"><ol id="h4knl"></ol></sub>
        <sup id="h4knl"></sup>
          <sub id="h4knl"></sub>

          <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
          1. <strong id="h4knl"></strong>

          2. 亚洲精品高清国产 | 日韩欧美精品一区二区二区不卡 | 天天综合来吧来吧久久精品 | 综合久久五月婷婷 | 亚洲国产欧美一区二区三区深喉 | 亚洲欧美一区二区三区 |

            JavaScript 小型打飛機游戲實現和原理說明

              JavaScript 小型打飛機游戲實現和原理說明

            JavaScript 小型打飛機游戲實現和原理說明

              玩法說明:上下左右控制移動,空格發彈。 每打中一個敵機就加100分,每提升5000分,玩家的飛機的一次發彈數就加一,最多四,被敵機撞到或者讓敵機飛到底部就算輸。。。。

              演示代碼:http://demo./js/FlyBeat/

              游戲目前的功能還是比較簡單的。。。。貌似就貼個源碼不太好,所以這次還是寫寫思路。。。

              游戲主要分為4個js文件,4個js文件分別包含4個類。

              1:飛機類---Flyer

              復制代碼 代碼如下:

              //飛機對應的dom元素

              this.dom = null;

              //是否活著

              this.isLive = true;

              //是否移動中

              this.isMove = false;

              //移動的ID

              this.moveId = null;

              //是否發彈中

              this.isSend = false;

              //目前已經發了多少顆彈(存在屏幕顯示)

              this.nowBullet = 0;

              //游戲背景Dom

              gamePanel : null,

              //游戲背景寬度

              gameWidth : 0,

              //游戲背景高度

              gameHeight : 0,

              //飛機移動速度

              movepx : 10,

              //飛機移動頻率

              movesp : 30,

              //飛機子彈級別

              bulletLevel : 1,

              //最大發彈數(存在屏幕顯示)

              maxBullet : 12,

              //方向鍵值對應

              keyCodeAndDirection : {

              37 : "left",

              38 : "up",

              39 : "right",

              40 : "down"

              },

              以上是飛機應該有的屬性。。。。

              飛機除了有固定的一些屬性之外,其實還應該有血量這些的,但這個是簡陋版嘛,你可以自己添加。

              更應該會有移動,發射子彈,爆炸等方法。

              移動: 其實就是捕獲鍵盤事件,如果是簡單的按下鍵盤的左,然后飛機就向左移動幾個像素,你會發覺,飛機移動起來很生硬,或者說是操作延遲,特別是你想按住鍵盤左的時候,它移動的時候,延遲得很嚴重,操作不流暢。所以一般都是:當你按下鍵盤時,調用一個setInterval函數來讓飛機不斷的移動,當釋放鍵盤的時候,移動停止,這樣移動就很流暢了。

              發射子彈: 其實就是用戶按了空格,然后觸發一個鍵盤事件,此事件就是生成一個子彈Bullet類的對象,然后讓它飛出去。此類后面會有說到。

              爆炸: 當飛機撞到敵機的時候,飛機就會觸發一個爆炸事件,結束游戲。當然,這個檢測飛機是否撞到敵機,是在敵機那里檢測。

              這些是一些基本事件。還有擴展的事件。。可以自己添加

              2:子彈類--Bullet

              復制代碼 代碼如下:

              //子彈Dom元素

              this.dom = null;

              //子彈移動速度

              movepx : 8,

              //子彈移動頻率

              movesp : 10,

              子彈最基本的兩個方法:移動與檢測是否打中敵機

              移動:子彈的移動簡單很多,就一直往上跑,top一直減就OK了。

              檢測是否打中敵機:將敵機的列表傳進方法中,遍歷敵機,檢測子彈與敵機是否有碰撞,有則敵機爆炸,沒有則跳過。

              3:敵機類--Enemy

              復制代碼 代碼如下:

              //敵機dom元素

              this.dom = null;

              //是否

              this.isLive = true;

              //敵機橫向移動速度

              movepx : 6,

              //敵機縱向移動速度

              movepy : 4,

              //敵機移動頻率

              movesp : 75,

              敵機的基本方法有:移動,是否撞到飛機Flyer玩家,爆炸

              移動:就是敵機如何移動,我是設置成敵機從上到下飛,讓后從左往又飛,撞到右邊盡頭,調頭飛。

              是否撞到飛機Flyer玩家:在敵機不斷的移動過程中,不斷的檢測飛機Flyer與敵機是否有交集,有則兩者爆炸,游戲結束,否則跳過。

              爆炸:就是敵機被子彈打中或者撞到飛機Flyer時觸發的事件。

              4:游戲控制類--Game

              其中包含一個擴展方法:從數組中刪除指定元素

              復制代碼 代碼如下:

              //擴展數組方法,刪除特定的值

              Array.prototype.remove = function(obj){

              for(var i=0,l=this.length;i < l;i++){

              if(this[i] == obj){

              this.splice(i,1);

              return this;

              }

              }

              throw "The Array has no this Obj";

              }

              其余的,都是些初始化敵機,飛機以及控制游戲流程的,還有一些修改分數,游戲結束之類的方法。這些沒啥好講。

              大致就這樣,游戲本身比較簡單,下面的源碼都有注釋,這次寫得比較詳細。。。有興趣的朋友,可以自己繼續完善。。。有啥問題,歡迎拍磚。。。多多指教。

              打包下載地址 /jiaoben/32660.html