20141208 用js做个打飞机游戏 , 用div和img就够了 , ie8也能够支持
来源:互联网 发布:怎么发网络短信 编辑:程序博客网 时间:2024/05/29 03:40
演示地址 : http://xuanzun.sinaapp.com/project/planeFighter/
gitosc : https://git.oschina.net/cxwithyxy/JS_DIV_planeFighter.git
终于期末考考完 , 剩下一个月的课程设计 ,倒不如直接回公司好了 , 顺便回了一趟家 ,家里没有接网线 , 郁闷 ,只能敲敲游戏练练手...
于是就有这个打飞机游戏了.
做这样的游戏有两个关键问题
一个是碰撞的检测
一个是画面循环刷新
当然都不难 , 这飞机游戏不需要用到像素级别的碰撞检测 , 矩形碰撞就是了 ,当然飞机不是矩形的 , 那可以构造多个矩形碰撞箱去尽量填充飞机了..
思路也是一样 , 和 box2D那些引擎差不多吧 (自我感觉良好(^_^)) , 画画归画面 , 碰撞模型归碰撞模型来做.
在CX文件夹下面有几个大的类 , 至于为什么都是CX开头 , 这 .... 我名字的首字母就是C和X了...
首先是碰撞模型 , 有个AABB的类 , 额, 据说AABB就是矩形碰撞了 , 反正我也不清楚 , 我做的能够碰撞检测就行了..
然后是游戏单元类 , 叫CXObject, 这里说的游戏单元就是飞机啊子弹啊这些要计算碰撞的 , 一个CXObject 基本包括了 一组碰撞箱 ,也就是一组AABB对象 ,和自身画面的对象 , 也就是dom对象 , 就是一个img标签啦.
再有的是CXWorld , 游戏世界 ,它负责了游戏整个世界的刷新 , 世界不刷新 ,里面的东西也不会动 , 多久刷新一次 ,按照flash动画来说是1秒20帧, 那我也要弄成1秒刷新20次咯 , 这样看起来动画才会流畅了.
这3个就构成了最基本的游戏世界和游戏单元了
至于游戏画面刷新 , 也跟着游戏世界的刷新而刷新 , 这不能叫刷新吧 , 充其量就是更新img标签的left和top属性而已....
每次世界刷新的时候 ,移动CXObject的时候同时移动碰撞箱和dom对象 , 这样就能看到飞机在动了 , 虽然飞机只是一个img标签...
然后每次刷新都要检测一下碰撞 , 这样才能够知道在我一轮扫射之下有多少飞机能够活下来 , 当然自己的飞机也不要撞到敌机坠毁了..
现在只有一种敌机 , 速度和分数是随机的 , 当然分数是根据速度定的 , 速度越快分数越高吧
之后可以加个血量进去 , 再弄个大飞机慢慢打 , 哈哈哈
- 20141208 用js做个打飞机游戏 , 用div和img就够了 , ie8也能够支持
- 定义够了就可以用了
- poj1306+double就够了不过以后double用%lf
- iOS下:StoryBoard怎么用,看这两篇文章就够了!
- Android APP Banner ,用这一个就够了
- Android APP Banner ,用这一个就够了
- iOS与网页JS交互,看我就够了
- iOS与网页JS交互,看我就够了
- 仅剩三天 Gmail 就不再支持IE8浏览器了
- Android和H5交互一篇就够了
- 知道 Hadoop 就够了?这九大技术你也必须了解!
- 一次成功就够了
- 一个安慰就够了
- 有你们就够了
- 有你就够了
- ES6这些就够了
- ES6这些就够了
- ES6这些就够了
- vs2010 使用备忘
- 对象拷贝类PropertyUtils,BeanUtils,BeanCopier的技术沉淀
- iptables配置——NAT地址转换
- IllegalArgumentException: Comparison method violates its general contract错误详细内容
- [Win32]获取当前系统可用磁盘空间最大的盘符
- 20141208 用js做个打飞机游戏 , 用div和img就够了 , ie8也能够支持
- 三十.内存初始化
- Fragment 完全解析(下)
- Java线程(五):线程池
- 多条件查询
- 了解黑客攻与防
- 使用Windbg查看系统SSDT表与ShadowSSDT表
- Combinations
- 如何安装低版本GCC