web版canvas做飞机大战游戏 总结
2015-11-16 22:56
246 查看
唠唠:两天的时间跟着做了个飞机大战的游戏,感觉做游戏挺好的。说是用html5做,发现全都是js。说js里一切皆为对象,写的最多的还是函数,都是函数调用。对这两天的代码做个总结,希望路过的大神指点一下,我对这个游戏的思路,可改进优化的代码。
先说一下游戏的基本内容: 打飞机(不要想歪了),有鼠标控制移动英雄机,子弹自动射击;敌机从上而下,有三种敌机;
先说下HTML代码(主要就是这一行):
一、对这个游戏的的基本数据状态做定义
主要包括:
游戏的状态: 开始状态 英雄机入场状态 游戏进行状态 暂停状态 gameOver;得分 英雄机的生命
View Code
八、后续的一些设想
现在的游戏不能重新开始,需要刷新才能重新开始,所以定义了 init() 函数用于游戏结束后重新开始(需要删除setTimeout事件):
还有关于子弹的类型的设想: 可以设置 双列子弹,散花弹等子弹的类型,子弹可升级,设置子弹的威力等;可以设置速度的变更等
有路过的大神可以看下下边的源码,指点下(源码不长就10kb多点)
九、源码链接
完整源码下载
先说一下游戏的基本内容: 打飞机(不要想歪了),有鼠标控制移动英雄机,子弹自动射击;敌机从上而下,有三种敌机;
先说下HTML代码(主要就是这一行):
<canvas id="canFly" width="480" height="650"></canvas>
一、对这个游戏的的基本数据状态做定义
主要包括:
游戏的状态: 开始状态 英雄机入场状态 游戏进行状态 暂停状态 gameOver;得分 英雄机的生命
canvas.onmouseout = function(){ if (gameData.state == gameData.RUNNING) { gameData.state = gameData.PAUSED; } }
View Code
八、后续的一些设想
现在的游戏不能重新开始,需要刷新才能重新开始,所以定义了 init() 函数用于游戏结束后重新开始(需要删除setTimeout事件):
function init(){ //设置游戏的初始状态 gameData.state = gameData.START; gameData.score = 0;//分数重置 gameData.heroLife = 3;//声明值重置 //游戏运行 gameExec(); }
还有关于子弹的类型的设想: 可以设置 双列子弹,散花弹等子弹的类型,子弹可升级,设置子弹的威力等;可以设置速度的变更等
有路过的大神可以看下下边的源码,指点下(源码不长就10kb多点)
九、源码链接
完整源码下载
相关文章推荐
- KBuild MakeFile 添加外部头文件
- 剑指Offer 链表相关问题--从尾到头打印链表、合并两个排序的链表
- 网络编程最佳实践
- delegate为什么用assign声明
- Java用ArrayList实现栈
- 南昌大学软件学院大神养成计划脚印-11.16
- 61. 文件系统
- linuxShell之一 文件读取 循环与分支
- Unity中用到的C#补充(七)- 委托与事件
- InnoDB概览
- HDU 1429-胜利大逃亡(续)
- 牛逼的大学教育果然非常受用
- 包导入基础
- Makefile 中:= ?= += =的区别
- 把解压缩版的tomcat6注册成服务并设置自启动
- Git的其他用法
- Java日期与时间的处理/Date,String,Calendar转换
- ///判断网络状态 (简单版)
- Android系统常用隐藏命令大全
- Java锁的种类以及辨析(四):可重入锁