文章出處

  在線DEMO地址:打開

  游戲截圖:

        

  就不貼代碼了, 因為代碼太多了, 大概寫一下這個游戲實現思路和一些實現;

  游戲一共有三關, 每一關都有一個大Boss, Boss比較好殺,主要各種外星飛船殺傷力太強, 要注意;

          

  

  游戲中打死敵機有10%的幾率會掉神符, 包括生命神符加血神符無敵神符炸彈升級神符

  

 

  每一個敵機的死亡都有100%的幾率掉鉆石, 如果飛船吃了鉆石就可以增加左上角的積分score

  

  

  目前有兩臺戰斗機,戰斗機只是機型不同, 戰斗力是相同的:

  

 

  使用requireJS實現模塊化, 因為JS的靈活性太高, 代碼太多的話很難維護, 使用requireJS進行模塊化;

  使用P.js 實現類的繼承: P.js , JS的游戲開發比日常的JS應用更需要類的繼承, 所以用了這個庫;

  彈窗使用了Tiny-Alert, 因為系統默認的alert提示太難看了;

  游戲的聲音用了GT.sound, 大城小胖的作品, 打開GT.sound

  游戲的圖片素材聲音素材都是從網上扒的, 找了好久, 好素材要花錢撒, 沒錢, 不解釋;

  

  項目的結構如下:

  

  因為requireJS提供了一個自動打包工具r.js, 可以把使用模塊的代碼打包到一起, 我就用了, 項目下的main-build.js就是打包后的JS文件, 合并后的代碼有47kb,(代碼很少,圖片很多);

  使用了Grunt的watch插件,實現了代碼變更時候的實時查看

  以下是package.json的信息, 可以看看我用了哪些插件:

{
  "name": "game_air",
  "version": "0.0.0",
  "description": "for watch",
  "main": "Gruntfile.js",
  "dependencies": {
    "grunt": "~0.4.5",
    "express": "~3.15.2",
    "grunt-contrib-connect": "~0.6.0",
    "grunt-contrib-watch": "~0.5.3"
  },
  "devDependencies": {
    "grunt-contrib-less": "~1.0.0",
    "requirejs": "~2.1.19"
  },
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "repository": {
    "type": "git",
    "url": "http:\\"
  },
  "keywords": [
    "nono"
  ],
  "author": "nono",
  "license": "__MIT__"
}
View Code

 

  

  因為游戲要考慮PC和移動端,所以操作方面, 用了自己寫的CommonControl.js

  因為游戲中需要涉及圖片加載的問題, 所以用了自己寫的LoadImg.js

  這個游戲是用canvas畫圖實現的,所以要有一個主要的畫圖線程 ,我又寫了一個TaskList.js

  游戲中的界面跳轉用了自己寫的一個Pages, 用來作為路由控制, Pages.js

  這個游戲在電腦上的FPS為50左右, 很流暢,低端機上還是有點卡,  因為會涉及到各種的碰撞檢測, 子彈多的話,要跑很多的檢測代碼, 有優化的空間 , 游戲在中高端的移動設備上有最好的體驗, 持續更新;

  園友想要源碼, 僅供參考:https://github.com/sqqihao/sqqihao.github.io/tree/master/games/air

  在線DEMO地址:打開, ^_^, 給個推薦如何?

 

作者: NONO
出處:http://www.cnblogs.com/diligenceday/
QQ:287101329 


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()