在线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__"
}

  

  因为游戏要考虑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

最新文章

  1. 用delphi实现rar文件的解压的方法
  2. response.setHeader()的用法
  3. Python搜索目录下指定的文件,并返回绝对路径(包括子目录)
  4. 怎么找到占用usb的模块,linux下Jlink连接失败
  5. 解除win7系统静音
  6. 菜鸟学习WCF笔记-契约(Contract)
  7. iOS应用开发最佳实践系列一:编写高质量的Objective-C代码
  8. No resource found that matches the given name
  9. UNIX 信号基本概念
  10. (转载)XML Tutorial for iOS: How To Choose The Best XML Parser for Your iPhone Project
  11. SELECT--UNION,UNION ALL,MINUS, INTERSECT,EXISTS
  12. Xilinx ISE 14.1中模拟True Dual Port RAM例子
  13. id,is的用法,小数据池的概念及编码知识进阶
  14. MySQL系列教程(一)
  15. IP通信基础原理课堂笔记----HCL(1)
  16. js实用方法记录-指不定哪天就会用到的js方法
  17. queue 的基本用法
  18. PyQt5--GridLayout
  19. [TJOI2015]线性代数
  20. strrchr()函数

热门文章

  1. python之最强王者(2)——python基础语法
  2. px、dp和sp,这些单位有什么区别?
  3. CSS3之新UI方案
  4. eclipse启动tomcat无法访问
  5. [转]HttpModule的认识
  6. 沙盒SandBox
  7. 初步进行vs单元测试
  8. CentOS安装SVN服务器
  9. ubuntu声音系统
  10. linux下解压.tar.gz .tar.bz2