根据labview的打地鼠小游戏
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
虚拟仪器
成绩评定表
设计课题:基于labview的打地鼠小游戏学院名称:电气工程学院
专业班级:测控技术与仪器1403
学生姓名:王行健
学号:201423030305
指导教师:牛群峰
虚拟仪器课程设计任务书
摘要:
主要介绍了通过LabView研发打地鼠小游戏的过程。关键词:Labview 打地鼠
一、设计任务
1设计目标:
设计一个打地鼠(僵尸)的小游戏。
2设计基本要求及发挥:
(1)初步实现打地鼠功能。
(2)增加积分和等级统计功能。
(3)美化程序界面,添加音效。
二、方案论证
1.地鼠部分
方案一:运用事件,实现点击的确认,并利用随机来判定哪个口有地鼠。
方案二:调用ActiveX控件,采用更简单的语句编写,例如Flash。
鉴于此次想要练习Labview的应用,选用了方案一。
BVIEW程序设计
初步的设计并不理想,不能实现地鼠自动消失以及乱点鼠标的惩罚。
经过多次调整方案,最后采用了对于事件进行详尽分类,将地鼠的出现与消失编入事件,后来加入开始结束按键以后,问题变得更加复杂,于是在调用子VI的基础上,又增加了“等待开始”与“失败”两个事件,在此基础上重新调整了每一个参数在不同事件中的传递以及累计运算,最后实现了数据的统计。
在等待地鼠出现的事件中加入了难度的递增判断。对于同类数据隐藏,并把相同分类的编入簇处理,以简化框图。
3.界面美化
初步美化界面,个性化了按键,对于某些按键加入特效。最终加入音效。三、总体方案
1.工作原理:
简单来说,通过事件的触发和认证,实现了打地鼠功能。实际却比想象中的复杂很多。关键在于数据传递和算法的巧妙使用。
2.程序设计
对于框图已经做了整理,不方便再拆开了,整体来说,先从地鼠的触发开始,采用了自定义控件,地鼠按钮拥有三个态。地鼠采用随机触发,地鼠触发后判定是否点击相应地鼠,不点击延时后重新准备出地鼠,点击错误减时间,都是通过事件来完成的。比较复杂的是不同事件中的数据交换,除了统计数据的交换,还有事件真假的交换,这些都互相制约,而且根据嵌套决定了各自的优先级,这里不详细解释。最后就是在之前的基础上做了些小调整以消除bug。例如数据的初始化,还有数据的验证。在最后就是美化工作了,起初想应用同步时序实现更加复杂的音效效果,但是对于同步的几个控件理解不够深刻,经过多次尝试后还是采用了简单的方案。想应用ActiveX控件调用Flash实现动态地鼠,后查网说如果机器不安装Adobe Flash则控件不能正常显示,鉴于方便大家测试,作罢。美化工作其实不必程序设计简单,图片都要自己处理,声音也要自己剪裁和处理。经过这么多的努力才制作出一个这么简陋的小游戏,见笑。而且制作过程中为了美化删减掉许多功能,大家看到的最终版本并不代表所有汗水。
四设计步骤
1.1 前面板设计
根据在实际机器中的实物以及设计思路过程,大致需要地鼠、成绩显示屏、玩的过程中地鼠个数显示、时间的设置输入以及一些控制游戏始末的开关等。
在时间有限的情况下,没有能够自行设计一个控件,因此用布尔开关来模拟,当开关开时记作地鼠出现,关时记作地鼠消失,为进一步的区分这两种状态,可以让开与关时的布尔控件显示不同的颜色,如下图2-1-a。还是可以用布尔控件来控制类似的电源开与关、游戏的开始与结束。屏幕的显示用字符串显示控件可以满足。地鼠出现的总个数、打中的以及为打中的是数字的显示,用数字显示控件可以,如图2-1-a。当然时间的设置用数字输入控件好一些,为使时间的精度高一些,特以没0.1s来增加或减少。整体前面板控件如图2-1-a.
图2-1-a 前面板的设计总图
1.2程序框图设计
有了前面的大致控件的选择,要实现这些控件能合理的相互协调工作,就需要在程序框图里进行一定的算法结构。由于一个控件需要多次重复出现,故大量采用属性节点来达到一
定要求。
首先,从总体控制单位开始,这个设计选择了条件结构来判断游戏可不可以开始与否,在游戏可以用后,用一个显示灯来告知使用者,若游戏不能用,则要把相关的控件给清零,以便下次使用时不收上次的影响。如图2-2-a.
图2-2-a
其次,在进入可以游戏过程后,需要另一个布尔开关用条件结构来判断是否开始或结束游戏,在开关为开时,即开始玩游戏了,首先对显示地鼠数目的项目进行哈清零,之后用一个while循环来是游戏反复的运行,当然,其控制也是由游戏开始与否的开关来实现。
在while循环中,由于地鼠是用布尔控件来模拟的,将其值转换为数值显示,对所有控件的值用公式节点的结构方式相加,对得到的值在进行条件选择,如果这十五个值相加为零,则说明所有地鼠没出现,此时就需要来随机产生地鼠出现了。可以用一个顺序结构来产生随机地鼠的出现,先用自定义的字符显示在显示屏上,提示使用者,之后用以随机数产生一个数字在放大十五倍后,进入一个条件节后,对相应的控件进行编号,使每个地鼠出现的概率是相同的。每当进入某一个与控件编号对应的框图时,都将使该控件显示为相反状态,即处于开时的颜色,也就表示地处冒出了。接着,用运算规律对地鼠出现的总数目进行相应的跟踪显示。同时也会把使用者在玩的过程中击中地鼠的个数也会相应计算显示出来。如图2-2-b。
图2-2-b
如果有一个地鼠出现了,那所有控件和为1了,进入下面的框图,此时可以通过按下对应的控件恢复最初状态,在循环延迟时间的设置下,得以连续进行。如果没有进行任何操作,则在进入该程序步骤时,就有一个计时已用时间,把该记得时间与设置的延迟时间相比较。如果大于等于的话,就对所有的地鼠全部清零,同时,在显示未打中地鼠的数目将相应变化;如果记得的时间小于延迟时间,就不执行任何语句,此时处于等待时间。如图2-2-。。
图2-2-c
最后,在结束游戏后,主要是对玩的一个结果显示,如图2-2-d,