




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
JavaScript实现打地鼠小游戏一、项目简介本项目名为打地鼠,是大家耳熟能详的一款经典的小游戏。游戏最终将会以html文件形式完成,需要使用Firefox等浏览器打开才能看到游戏的最终效果。此外,游戏将会采用JavaScript实现整个逻辑流程,所以建议没有JavaScript基础的同学首先学习javaScript教程。游戏最终效果截图如下:二、核心方法介绍在打地鼠小游戏中将会多次用到JavaScript中的计时函数: setTimeout() setInterval()这两个函数的作用很大,不仅仅在本次的小游戏中,在很多的JavaScript程序中都会有“他们”的身影。接下来将会详细的剖析这两个函数。1. setTimeout()用于在指定的毫秒数后调用函数或计算表达式(只执行一次,可通过创建一个函数循环重复调用setTimeout,来实现重复操作)用法示例 setTimeout(functionName(),1000); setTimeout(functionName,1000);调用一个无参的方法很简单,但当我们需要调用一个带有参数的函数时,问题就来了。解决的方法就是再写一个函数,该函数返回一个不带参数的函数。 示例如下:function show(name) alert(name + ,你好!);function returnFun(name) return function() show(name); ;setTimeout(returnFun(小明),1000);clearTimeout()立即终止setTimeout()方法。 示例:var timeId = setTimeout(.);clearTimeout(timeId);2. setInterval()可按照指定的周期(毫秒)来调用函数或计算表达式。与setTimeout()不同,不论调用的函数或计算表达式需要多长时间才能执行完,它都只是简单的每隔一定时间就重复执行一次那个函数或计算表达式。用法示例 setInterval(functionName(),1000); setInterval(functionName,1000);clearInterval()立即终止setInterval()方法。 示例:var interId = setInterval(.);clearInterval(interId);三、游戏制作1. 功能逻辑设计功能包括: 得分统计 计算成功率 老鼠图片的隐藏、显示 判断是否点中老鼠 最终结果显示 错误提示流程设计: 点击“开始游戏”按钮游戏开始,否则将提示“请点击开始游戏”字样 分数、命中率显示重置为“0”,倒计时开始(默认为30秒) 老鼠图片不断显示、隐藏,玩家可点击鼠标左键进行游戏 当30秒倒计时结束或者玩家主动点击“结束按钮”时,游戏结束并显示游戏结果游戏设计简单,并未添加其他丰富的游戏设计,也没有添加动画、声音等特殊效果,其目的是想带领大家从简洁的游戏逻辑设计中清楚地体会到从设计到开发、完善的乐趣,能通过简单的几行代码也能轻松实现一个属于自己制作的小游戏。2. 框架设计游戏通过html文件实现,自然离不开html标签,常见的打地鼠游戏都是规则的几个固定位置随机出现老鼠,因此本次游戏设计将会采用标签来布局,得分、命中率等结果显示将使用标签。html代码(包括css)如下: 打地鼠 #content width: 960px; margin: 0 auto; text-align: center; table margin: 0 auto; table:hover cursor: url(img/chuizi.png),auto;/此处图片路径要依据自己的路径来修改 td width: 95px; height: 95px; background-color: #00ff33; . /下一节将会详细讲解 分数: 命中率: 倒计时: 这样打地鼠小游戏的结构设计就完成了,可以保存后通过Firefox浏览器查看当前效果。3. 功能逻辑实现代码配上详细注解:var td = new Array(), /保存每个格子的地鼠 playing = false, /游戏是否开始 score = 0, /分数 beat = 0, /鼠标点击次数 success = 0, /命中率 knock = 0, /鼠标点中老鼠图片次数 countDown = 30, /倒计时 interId = null, /指定setInterval()的变量 timeId = null; /指定setTimeout()的变量/游戏结束function GameOver() timeStop(); playing = false; clearMouse(); alert(游戏结束!n你获得的分数为:+score+n命中率为:+success); success = 0; score = 0; knock = 0; beat = 0; countDown = 30;/显示当前倒计时所剩时间function timeShow() document.form1.remtime.value = countDown; if(countDown = 0) GameOver(); return; else countDown = countDown-1; timeId = setTimeout(timeShow(),1000); /主动停止所有计时function timeStop() clearInterval(interId);/clearInterval()方法返回setInterval()方法的id clearTimeout(timeId);/clearTime()方法返回setTimeout()的id/随机循环显示老鼠图片function show() if(playing) var current = Math.floor(Math.random()*25); /这里的路径也需要根据自己的实际文件路径来修改 document.getElementById(td+current+).innerHTML = ; /使用setTimeout()实现3秒后隐藏老鼠图片 setTimeout(document.getElementById(td+current+).innerHTML=,3000); /清除所有老鼠图片function clearMouse() for(var i=0;i=24;i+) document.getElementById(td+i+).innerHTML=; /点击事件函数,判断是否点中老鼠function hit(id) if(playing=false) alert(请点击开始游戏); return; else beat +=1; if(document.getElementById(td+id+).innerHTML!=) score += 1; knock +=1; success = knock/beat; document.form1.success.value = success; document.form1.score.value = score; document.getElementById(td+id+).innerHTML=; else score += -1; success = knock/beat; document.form1.success.value = success; document.form1.score.value = score; /游戏开始function GameStart() playing = true; interId = setInterval(show(),1000); document.form1.score.value = score; document.form1.success.value = success; timeShow();现在就可以让老鼠动起来了。4. 总结到此,整个游戏从设计到制作就完全介绍完了。运行一下自己制作的小游戏,虽然简单,但是其中的乐趣是不言而喻的。再看看代码,也没有很多晦涩难懂的复杂算法或逻辑,这也是JavaScript容易入门的原因。但是JavaScript是一门弱类型语言,语法很灵活,所有要真真掌握JavaScript还是需要花一点功夫。最后,游戏虽然完成了,但是代码的优化也是每一个项目所必须的。例如:在html代码中每个标签都绑定了onclick事件对象,这样繁琐的代码显然不是我们想要的,但当我们使用js库,比如最受人欢迎的jQuery,我们的代码会更加简洁。像这样需要优化的代码还有很多,希望同学们能有自己的创新,不断的完善、优化这个小游戏!感谢你的学习。看了来自Leetao同学的细心测评,在最后留给大家几个思考题:思考题1: 界面的美观优化,大开你的脑洞,把打地鼠的游戏界面能设计得更美观得体。 思考题2: 在命中率结果显示处,未做精确控制,显得数据不好看,希望大家能思考一下,能把结果控制在两位小数。 思考题3: 修改最后的结果提示,去掉alert( ),自己尝试写
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 理赔服务合同协议书范本
- 清远入城证申请合同范本
- 自制挖掘机租赁合同范本
- 派遣员工终止合同协议书
- 鱼缸消毒灯销售合同范本
- 股份合同终止协议书范本
- 珠海住宅装修协议书范本
- 灯具工程分包合同协议书
- 特许经营权协议合同范本
- 签订房屋期权买卖协议书
- 珍珠专业知识课件
- 语言学纲要(新)课件
- 高中物理必修一期中测试题及答案解析
- 风冷热泵机组调试方案
- 《园林主要病虫害防治一览表》
- 部编版语文五年级上册作文审题训练题目
- 李中莹心理创伤简快辅导技巧(课堂PPT)
- VS1真空断路器说明书
- JTT230-2021汽车导静电橡胶拖地带_(高清-最新)
- 监理周例会总承包单位工作汇报PPT课件
- 生态融合绿色发展(EOD)示范项目可行性研究报告模板
评论
0/150
提交评论