




已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 5 Languages Around the World 主题词汇专项练习(含答案)-2025-2026学年高中英语人教版(2019)必修第一册
- 肾内科血透患者的护理
- 2025年事业单位工勤技能-湖南-湖南广播电视天线工五级(初级工)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-湖北-湖北计算机文字录入处理员二级(技师)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-湖北-湖北水工监测工二级(技师)历年参考题库含答案解析
- 2025年事业单位工勤技能-湖北-湖北收银员五级(初级工)历年参考题库典型考点含答案解析
- 2025-2030中国纸浆模塑行业竞争格局与发展规划分析报告
- 2025年事业单位工勤技能-湖北-湖北兽医防治员五级(初级工)历年参考题库典型考点含答案解析
- 2025年农业绿色发展政策与法律法规解读
- 2025年药物研发新方向:创新药物靶点挖掘与验证技术实战分析报告
- 公路工程项目管理大纲
- GB/T 34557-2017砂浆、混凝土用乳胶和可再分散乳胶粉
- 半导体制造工艺基础之扩散工艺培训课件
- 溶剂油MSDS危险化学品安全技术说明书
- SURPAC软件地质建模操作步骤
- 新北师大单元分析六上第六单元《比的认识》单元教材解读
- 福建升辉鞋业有限公司年加工EVA鞋底385万双、TPR鞋底65万双、PVC鞋底60万双项目环评报告表
- 零星维修服务方案
- 胸腺瘤诊断治疗指南
- 视网膜静脉阻塞.LM
- 华为客户接待规范接待礼仪课件
评论
0/150
提交评论