最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript 小型打飛機(jī)游戲?qū)崿F(xiàn)原理說明

 更新時間:2010年10月28日 14:40:30   作者:  
這次為大家?guī)淼男∮螒蚴牵捍蝻w機(jī)。呃。。。我本人就寫不出什么驚天大作的游戲的了,只能寫寫小游戲,代碼量小,又可以學(xué)習(xí),主要是想法思路,代碼量大,估計也沒啥人會去研究學(xué)習(xí)。。。
玩法說明:上下左右控制移動,空格發(fā)彈。 每打中一個敵機(jī)就加100分,每提升5000分,玩家的飛機(jī)的一次發(fā)彈數(shù)就加一,最多四,被敵機(jī)撞到或者讓敵機(jī)飛到底部就算輸。。。。

演示代碼:http://demo.jb51.net/js/FlyBeat/index.html

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

游戲主要分為4個js文件,4個js文件分別包含4個類。
1:飛機(jī)類---Flyer
復(fù)制代碼 代碼如下:

//飛機(jī)對應(yīng)的dom元素
this.dom = null;
//是否活著
this.isLive = true;
//是否移動中
this.isMove = false;
//移動的ID
this.moveId = null;
//是否發(fā)彈中
this.isSend = false;
//目前已經(jīng)發(fā)了多少顆彈(存在屏幕顯示)
this.nowBullet = 0;
//游戲背景Dom
gamePanel : null,
//游戲背景寬度
gameWidth : 0,
//游戲背景高度
gameHeight : 0,
//飛機(jī)移動速度
movepx : 10,
//飛機(jī)移動頻率
movesp : 30,
//飛機(jī)子彈級別
bulletLevel : 1,
//最大發(fā)彈數(shù)(存在屏幕顯示)
maxBullet : 12,
//方向鍵值對應(yīng)
keyCodeAndDirection : {
37 : "left",
38 : "up",
39 : "right",
40 : "down"
},

以上是飛機(jī)應(yīng)該有的屬性。。。。

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

更應(yīng)該會有移動,發(fā)射子彈,爆炸等方法。

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

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

爆炸: 當(dāng)飛機(jī)撞到敵機(jī)的時候,飛機(jī)就會觸發(fā)一個爆炸事件,結(jié)束游戲。當(dāng)然,這個檢測飛機(jī)是否撞到敵機(jī),是在敵機(jī)那里檢測。

這些是一些基本事件。還有擴(kuò)展的事件。??梢宰约禾砑?/P>

 2:子彈類--Bullet

復(fù)制代碼 代碼如下:

//子彈Dom元素
this.dom = null;
//子彈移動速度
movepx : 8,
//子彈移動頻率
movesp : 10,

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

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

檢測是否打中敵機(jī):將敵機(jī)的列表傳進(jìn)方法中,遍歷敵機(jī),檢測子彈與敵機(jī)是否有碰撞,有則敵機(jī)爆炸,沒有則跳過。
3:敵機(jī)類--Enemy

復(fù)制代碼 代碼如下:

//敵機(jī)dom元素
this.dom = null;
//是否
this.isLive = true;
//敵機(jī)橫向移動速度
movepx : 6,
//敵機(jī)縱向移動速度
movepy : 4,
//敵機(jī)移動頻率
movesp : 75,

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

移動:就是敵機(jī)如何移動,我是設(shè)置成敵機(jī)從上到下飛,讓后從左往又飛,撞到右邊盡頭,調(diào)頭飛。

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

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

4:游戲控制類--Game

其中包含一個擴(kuò)展方法:從數(shù)組中刪除指定元素

復(fù)制代碼 代碼如下:

//擴(kuò)展數(shù)組方法,刪除特定的值
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";
}

其余的,都是些初始化敵機(jī),飛機(jī)以及控制游戲流程的,還有一些修改分?jǐn)?shù),游戲結(jié)束之類的方法。這些沒啥好講。

大致就這樣,游戲本身比較簡單,下面的源碼都有注釋,這次寫得比較詳細(xì)。。。有興趣的朋友,可以自己繼續(xù)完善。。。有啥問題,歡迎拍磚。。。多多指教。
打包下載地址 http://www.fzitv.net/jiaoben/32660.html

相關(guān)文章

  • js 程序執(zhí)行與順序?qū)崿F(xiàn)詳解

    js 程序執(zhí)行與順序?qū)崿F(xiàn)詳解

    JavaScript是一種描述型腳本語言,由瀏覽器進(jìn)行動態(tài)的解析與執(zhí)行,瀏覽器對于不同的方式有不同的解析順序,詳細(xì)介紹如下,感興趣的朋友可以參考下哈
    2013-05-05
  • javascript實現(xiàn)fetch請求返回的統(tǒng)一攔截

    javascript實現(xiàn)fetch請求返回的統(tǒng)一攔截

    這篇文章主要介紹了javascript實現(xiàn)fetch請求返回的統(tǒng)一攔截,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • js 將線性數(shù)據(jù)轉(zhuǎn)為樹形的示例代碼

    js 將線性數(shù)據(jù)轉(zhuǎn)為樹形的示例代碼

    這篇文章主要介紹了js 將線性數(shù)據(jù)轉(zhuǎn)為樹形的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • 基于JavaScript實現(xiàn)帶縮略圖的輪播效果

    基于JavaScript實現(xiàn)帶縮略圖的輪播效果

    這篇文章主要為大家詳細(xì)介紹了基于JavaScript實現(xiàn)帶縮略圖的輪播效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • uni-app應(yīng)用配置manifest.json最全最詳細(xì)配置

    uni-app應(yīng)用配置manifest.json最全最詳細(xì)配置

    這篇文章主要給大家介紹了關(guān)于uni-app應(yīng)用配置manifest.json最全最詳細(xì)配置,manifest.json文件是UniApp開發(fā)中用來配置應(yīng)用信息的重要文件,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-01-01
  • JavaScript:ES2019 的新特性(譯)

    JavaScript:ES2019 的新特性(譯)

    這篇文章主要介紹了JavaScript:ES2019 的新特性(譯),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • JavaScript 無縫上下左右滾動加定高定寬停頓效果(兼容ie/ff)

    JavaScript 無縫上下左右滾動加定高定寬停頓效果(兼容ie/ff)

    JavaScript 指定寬度高度的無間斷滾動實現(xiàn)代碼,這樣的效果適合作為焦點(diǎn)新聞的輪播顯示。
    2010-03-03
  • 按鈕接受回車事件的三種實現(xiàn)方法

    按鈕接受回車事件的三種實現(xiàn)方法

    這篇文章主要介紹了按鈕接受回車事件的三種實現(xiàn)方法,需要的朋友可以參考下
    2014-06-06
  • 基于JavaScript實現(xiàn)微信搶紅包功能

    基于JavaScript實現(xiàn)微信搶紅包功能

    本文通過實例代碼給大家介紹了基于JavaScript實現(xiàn)微信搶紅包功能,金額隨機(jī),額度在0.01和(剩余平均值*2)之間,具體的實例代碼大家參考下本文
    2017-07-07
  • ie與firefox下的event使用說明與詳細(xì)區(qū)別

    ie與firefox下的event使用說明與詳細(xì)區(qū)別

    event是ie自帶的一個對象,而ff中不存在該對象,只能通過傳遞參數(shù)(并且惟一)的方式來實現(xiàn)event.
    2009-10-10

最新評論

宁陵县| 班玛县| 肥东县| 淄博市| 澳门| 桃园县| 新龙县| 陇川县| 达日县| 古浪县| 西乡县| 延长县| 永德县| 盐津县| 城口县| 云和县| 中西区| 苗栗县| 湖南省| 扎兰屯市| 阳高县| 都匀市| 通城县| 启东市| 阜新| 大埔区| 和平县| 临猗县| 六枝特区| 阿尔山市| 湘潭县| 吉木乃县| 西华县| 双城市| 桐梓县| 浦江县| 台山市| 林口县| 潞西市| 宁安市| 肥东县|