《虚拟仪器课程设计-基于labview的打地鼠小游戏》由会员分享,可在线阅读,更多相关《虚拟仪器课程设计-基于labview的打地鼠小游戏(13页珍藏版)》请在金锄头文库上搜索。
1、 电子技术课程设计虚拟仪器成绩评定表设计课题 : 基于 labview 的打地鼠小游戏 学院名称 : 电气工程学院 专业班级 : 测控技术与仪器 1403 学生姓名 : 学 号 : 指导教师 : 指导教师意见:成绩:签名: 年 月 日 电子技术课程设计1虚拟仪器 课程设计任务书学生姓名 专业班级 测控技术与 仪器 1403 学号题 目 打地鼠小游戏课题性质 工程设计 课题来源 自拟指导教师 牛群峰主要内容(参数)。一般情况下,机器每个地鼠出现的时间都已经系统的设置好了。至此,可以用循环的方式让地鼠在间隔一段时间就出现,用不同颜色的同一控件不同状态可以大致比拟,同时,为满足不同反映能力的使用者,
2、可进行每个地鼠出现的间隔。在某一个地鼠出现后,若在规定时间没有击或没有击中的话,地鼠会回复原样,就想到可以通过计算地鼠从冒出计时到规定时间后,来迫使其恢复,基本可以达到一定的效果任务要求(进度):(1)初步实现打地鼠功能。(2)增加积分和等级统计功能。(3)美化程序界面,添加音效。主要参考资料1LabVIEW 程序设计与应用(第二版)电子工业出版社2 LabVIEW 讲义山东大学物理与微电子学院3LabVIEW 虚拟仪器程序设计与应用西南交通大学出版社审查意见系(教研室)主任签字: 年 月 日 电子技术课程设计2摘 要 :主要介绍了通过 LabView 研发打地鼠小游戏的过程。 关键词:Lab
3、view 打地鼠一、设计任务1 设计目标:设计一个打地鼠(僵尸)的小游戏。2 设计基本要求及发挥:(1)初步实现打地鼠功能。(2)增加积分和等级统计功能。(3)美化程序界面,添加音效。二、方案论证1.地鼠部分方案一:运用事件,实现点击的确认,并利用随机来判定哪个口有地鼠。方案二:调用 ActiveX 控件,采用更简单的语句编写,例如 Flash。鉴于此次想要练习 Labview 的应用,选用了方案一。2.LABVIEW 程序设计初步的设计并不理想,不能实现地鼠自动消失以及乱点鼠标的惩罚。经过多次调整方案,最后采用了对于事件进行详尽分类,将地鼠的出现与消失编入事件,后来加入开始结束按键以后,问题
4、变得更加复杂,于是在调用子 VI的基础上,又增加了“等待开始”与“失败”两个事件,在此基础上重新调整了每一个参数在不同事件中的传递以及累计运算,最后实现了数据的统计。 在等待地鼠出现的事件中加入了难度的递增判断。对于同类数据隐藏,并把相同分类的编入簇处理,以简化框图。 3.界面美化初步美化界面,个性化了按键,对于某些按键加入特效。最终加入音效。 电子技术课程设计3三、总体方案1.工作原理:简单来说,通过事件的触发和认证,实现了打地鼠功能。实际却比想象中的复杂很多。关键在于数据传递和算法的巧妙使用。2.程序设计对于框图已经做了整理,不方便再拆开了,整体来说,先从地鼠的触发开始,采用了自定义控件,
5、地鼠按钮拥有三个态。地鼠采用随机触发,地鼠触发后判定是否点击相应地鼠,不点击延时后重新准备出地鼠,点击错误减时间,都是通过事件来完成的。比较复杂的是不同事件中的数据交换,除了统计数据的交换,还有事件真假的交换,这些都互相制约,而且根据嵌套决定了各自的优先级,这里不详细解释。最后就是在之前的基础上做了些小调整以消除 bug。例如数据的初始化,还有数据的验证。在最后就是美化工作了,起初想应用同步时序实现更加复杂的音效效果,但是对于同步的几个控件理解不够深刻,经过多次尝试后还是采用了简单的方案。想应用 ActiveX 控件调用 Flash 实现动态地鼠,后查网说如果机器不安装 Adobe Flash
6、 则控件不能正常显示,鉴于方便大家测试,作罢。美化工作其实不必程序设计简单,图片都要自己处理,声音也要自己剪裁和处理。经过这么多的努力才制作出一个这么简陋的小游戏,见笑。而且制作过程中为了美化删减掉许多功能,大家看到的最终版本并不代表所有汗水。四设计步骤1.1 前面板设计根据在实际机器中的实物以及设计思路过程,大致需要地鼠、成绩显示屏、玩的过程中地鼠个数显示、时间的设置输入以及一些控制游戏始末的开关等。在时间有限的情况下,没有能够自行设计一个控件,因此用布尔开关来模拟,当开关开时记作地鼠出现,关时记作地鼠消失,为进一步的区分这两种状态,可以让开与关时的布尔控件显示不同的颜色,如下图 2-1-a
7、。还是可以用布尔控件来控制类似的电源开与关、游戏的开始与结束。屏幕的显示用字符串显示控件可以满足。地鼠出现的总个数、打中的以及为打中的是数字的显示,用数字显示控件可以,如图 2-1-a。当然时间的设置用数字输入控件好一些,为使时间的精度高一些,特以没 0.1s 来增加或减少。整体前面板控件如图 2-1-a. 电子技术课程设计4图 2-1-a 前面板的设计总图1.2 程序框图设计有了前面的大致控件的选择,要实现这些控件能合理的相互协调工作,就需要在程序框图里进行一定的算法结构。由于一个控件需要多次重复出现,故大量采用属性节点来达到一定要求。首先,从总体控制单位开始,这个设计选择了条件结构来判断游
8、戏可不可以开始与否,在游戏可以用后,用一个显示灯来告知使用者,若游戏不能用,则要把相关的控件给清零,以便下次使用时不收上次的影响。如图 2-2-a. 电子技术课程设计5 电子技术课程设计6图 2-2-a其次,在进入可以游戏过程后,需要另一个布尔开关用条件结构来判断是否开始或结束游戏,在开关为开时,即开始玩游戏了,首先对显示地鼠数目的项目进行哈清零,之后用一个 while 循环来是游戏反复的运行,当然,其控制也是由游戏开始与否的开关来实现。在 while 循环中,由于地鼠是用布尔控件来模拟的,将其值转换为数值显示,对所有控件的值用公式节点的结构方式相加,对得到的值在进行条件选择,如果这十五个值相
9、加为零,则说明所有地鼠没出现,此时就需要来随机产生地鼠出现了。可以用一个顺序结构来产生随机地鼠的出现,先用自定义的字符显示在显示屏上,提示使用者,之后用以随机数产生一个数字在放大十五倍后,进入一个条件节后,对相应的控件进行编号,使每个地鼠出现的概率是相同的。每当进入某一个与控件编号对应的框图时,都将使该控件显示为相反状态,即处于开时的颜色,也就表示地处冒出了。接着,用运算规律对地鼠出现的总数目进行相应的跟踪显示。同时也会把使用者在玩的过程中击中地鼠的个数也会相应计算显示出来。如图 2-2-b。 电子技术课程设计7 电子技术课程设计8图 2-2-b如果有一个地鼠出现了,那所有控件和为 1 了,进
10、入下面的框图,此时可以通过按下对应的控件恢复最初状态,在循环延迟时间的设置下,得以连续进行。如果没有进行任何操作,则在进入该程序步骤时,就有一个计时已用时间,把该记得时间与设置的延迟时间相比较。如果大于等于的话,就对所有的地鼠全部清零,同时,在显示未打中地鼠的数目将相应变化;如果记得的时间小于延迟时间,就不执行任何语句,此时处于等待时间。如图 2-2-。图 2-2-c最后,在结束游戏后,主要是对玩的一个结果显示,如图 2-2-d,在这里面,选择了建立文本的形式,当然,也增加了对结果的分析,如果打中地鼠的数目与出现地鼠的总个数之比大于等于 0.7 的话,将会显示你这次是成功的。相反,如果小于0.
11、7 的话,那可就还需再接再厉了。建立文本图标可以点击 programming-string-built text 得到,在建立文本编辑里,进行设置。这是在比之小于 0.7 的时候文本形式。对于每两个百分号里地变量要进行相应的类型设置,例如,地鼠出现的总个数需要变成 number 格式。还可以对数字出现设置相应精确度,对于地鼠出现数用整数。但对比之则需要进行小数点位数的要求,可根据要求来。 电子技术课程设计9图 2-2-e图 2-2-d第三章 调试与分析对该简易打地鼠游戏的前面板和程序框图完成后,进行相应的运行,操作步骤有以下。第一步,点击连续控制按钮,进入运行软件过程中;第二步,点击开关按钮,
12、至少灯则相应变亮,其他控件都恢复初始状态;第三步,用时间设置来对地鼠出现的时间间隔自定义;第四步,点击开始游戏按钮,进入游戏状态;第五步,点击结束游戏,游戏结束,屏幕显示游戏结果,得到的效果如图 3-1-a 所示; 电子技术课程设计10第六步,点击开关,指示灯变暗,离开游戏区。第七步,点击程序结束运行。设计了这个简易的游戏,与实际相比,存在着诸多不足之处,许多功能难以满足要求,不过做了相应说明。这个游戏可以简单的完成打地鼠操作,还可以根据使用者不同的反应时间来设置时间操作,还能够提供了游戏的乐趣。总体上,这个游戏较好了运用了 LabVIEW 语言的一些基本内容及使用方法,还是达到了学习的目的。四、总结本学期的 labview 课一眨眼就结束,本来自认为学到了许多,但是真正应用起来才发现知识的拮据。通过这次开发了这个打地鼠的小游戏(虽然感觉用 LV 开发有些大才小用),又学会了许多新东西,遇到不懂得就上网查询,总能够得到满意的解答。这也许就是所谓的在应用中学习吧,而且我体会到向别人学习的乐趣,看了别人设计的许多 VI,更是受益匪浅。本学期的 LV 学习只是一个开始,应该说是一个不错的开始。我开发的小游戏如果能给你带来些许快乐,那也算我学到知识之余的又一个不小的收获吧。