




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
JavaScript 小型打飞机游戏实现和原理说明 JavaScript小型打飞机游戏实现和原理说明 玩法说明:上下左右控制移动,空格发弹。每打中一个敌机就加100分,每提升5000分,玩家的飞机的一次发弹数就加一,最多四,被敌机撞到或者让敌机飞到底部就算输。 演示代码:demo./js/FlyBeat/ 游戏目前的功能还是比较简单的。貌似就贴个源码不太好,所以这次还是写写思路。 游戏主要分为4个js文件,4个js文件分别包含4个类。 1:飞机类-Flyer 复制代码代码如下: /飞机对应的dom元素 this.dom=null; /是否活着 this.isLive=true; /是否移动中 this.isMove=false; /移动的ID this.moveId=null; /是否发弹中 this.isSend=false; /目前已经发了多少颗弹(存在屏幕显示) this.nowBullet=0; /游戏背景Dom gamePanel:null, /游戏背景宽度 gameWidth:0, /游戏背景高度 gameHeight:0, /飞机移动速度 movepx:10, /飞机移动频率 movesp:30, /飞机子弹级别 bulletLevel:1, /最大发弹数(存在屏幕显示) maxBullet:12, /方向键值对应 keyCodeAndDirection: 37:left, 38:up, 39:right, 40:down , 以上是飞机应该有的属性。 飞机除了有固定的一些属性之外,其实还应该有血量这些的,但这个是简陋版嘛,你可以自己添加。 更应该会有移动,发射子弹,爆炸等方法。 移动:其实就是捕获键盘事件,如果是简单的按下键盘的左,然后飞机就向左移动几个像素,你会发觉,飞机移动起来很生硬,或者说是操作延迟,特别是你想按住键盘左的时候,它移动的时候,延迟得很严重,操作不流畅。所以一般都是:当你按下键盘时,调用一个setInterval函数来让飞机不断的移动,当释放键盘的时候,移动停止,这样移动就很流畅了。 发射子弹:其实就是用户按了空格,然后触发一个键盘事件,此事件就是生成一个子弹Bullet类的对象,然后让它飞出去。此类后面会有说到。 爆炸:当飞机撞到敌机的时候,飞机就会触发一个爆炸事件,结束游戏。当然,这个检测飞机是否撞到敌机,是在敌机那里检测。 这些是一些基本事件。还有扩展的事件。可以自己添加 2:子弹类-Bullet 复制代码代码如下: /子弹Dom元素 this.dom=null; /子弹移动速度 movepx:8, /子弹移动频率 movesp:10, 子弹最基本的两个方法:移动与检测是否打中敌机 移动:子弹的移动简单很多,就一直往上跑,top一直减就OK了。 检测是否打中敌机:将敌机的列表传进方法中,遍历敌机,检测子弹与敌机是否有碰撞,有则敌机爆炸,没有则跳过。 3:敌机类-Enemy 复制代码代码如下: /敌机dom元素 this.dom=null; /是否 this.isLive=true; /敌机横向移动速度 movepx:6, /敌机纵向移动速度 movepy:4, /敌机移动频率 movesp:75, 敌机的基本方法有:移动,是否撞到飞机Flyer玩家,爆炸 移动:就是敌机如何移动,我是设置成敌机从上到下飞,让后从左往又飞,撞到右边尽头,调头飞。 是否撞到飞机Flyer玩家:在敌机不断的移动过程中,不断的检测飞机Flyer与敌机是否有交集,有则两者爆炸,游戏结束,否则跳过。 爆炸:就是敌机被子弹打中或者撞到飞机Flyer时触发的事件。 4:游戏控制类-Game 其中包含一个扩展方法:从数组中删除指定元素 复制代码代码如下: /扩展数组方法,删除特定的值 Atotype.remove=function(obj) for(vari=0,l=this.length;il;i+) if(thisi=obj) this.splice(i,1); returnthis; throwTheArrayhasnothisObj; 其余的,都是些初始化敌机,飞机以及控制游戏流程的,还有一些修改分数,游戏结束之类的方法。这些没啥好讲。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司聚会赞助活动方案
- 公司现场宣传活动方案
- 公司营地团建活动方案
- 公司清远漂流活动方案
- 公司春茗策划方案
- 公司椅子清仓活动方案
- 公司新生产线策划方案
- 公司新春工会活动方案
- 公司组织云年会活动方案
- 公司端午感恩策划方案
- 优2023年医用X射线诊断与介入放射学 辐射安全考核试题库含答案
- 《桥小脑角占位》
- 甘肃省苹果产业发展现状、问题及对策苹果产业的现状及对策
- 培训MSDS专业知识课件
- 夜空中最亮的星二部合唱简谱
- 广东省佛山市南海区2021-2022学年六年级下学期数学学科核心素养水平抽样调研试卷
- YC/T 246-2008烟草及烟草制品烟碱的测定气相色谱法
- 钢结构施工检查记录表格
- 桥梁施工质量控制要点(PPT)
- 一二年级看图说话写话:过河 教学课件
- 售后服务管理制度与工作流程
评论
0/150
提交评论