欢迎来到天天文库
浏览记录
ID:12890023
大小:1.60 MB
页数:25页
时间:2018-07-19
《打字游戏___课程设计报告》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、VisualBasic课程设计报告所属课程名称:VisualBasic程序设计课程设计题号:29课程设计题目:打字游戏课程设计难度:3星课程设计时间:2013.3.1~4.17学号:0姓名:石博博自评成绩:90分0南京理工大学机械工程学院二〇一三年三月一、程序功能功能要求:(1)程序开始时是输入姓名,选择难度和速度以及进入游戏的界面.(2)进入游戏界面后,字母从屏幕上方下落,打中一个字母加一分,打错一个减一分,若字母落到底部都一直未击中,则减十分.(3)打字过程中,若想停止游戏,按ESC键,出现返回打
2、字设置窗口的提示信息.;按F1键,出现键盘(4)打字过程中,分数和时间显示在屏幕顶部,有音乐为伴,音乐停止,游戏结束;每打中一次就产生一次爆炸声及爆炸效果(5)单击查看成绩按钮可以查询到历史记录。.知识点:1.控件数组;2.声音的播放;3.键盘事件的处理;4.文本文件的读写;5.多模块程序设计;6.随机值得产生。一、课程设计的详细设计1、总体设计思路设计思路:在Frmmain中设置相关的属性后按下“开始练习”按钮,程序跳出Frmzjm(主界面),打字游戏就此开始,游戏结果会进行记录,单击“查看结果”按
3、钮就能查看游戏结果。过程中按下F1弹出键盘布局窗口,按下Esc按钮就会提示是否退出游戏,选择“是”就会退出并保存。结构框图:打字游戏FrmmainFrmzjmFrmscoreFrmjp游戏设置界面游戏界面(主界面)游戏记分界面键盘布局窗口2、界面设计窗体界面截图:Frmjp:包含的控件有:图片框。主要用于显示键盘布局,按下F1时出现此界面。Frmmain:包含的控件有:按钮,文本框,标签,框架。外观通过设置各个控件的相关属性得到。用于对游戏相关参数的设置,如输入游戏者姓名、选择游戏难度、速度、开始和结
4、束游戏,以及对结果的查看。Frmscore:包含的控件有:按钮,列表框。外观通过设置各个控件的相关属性得到。用于显示结果,包括游戏者姓名、得分、事件。按下“查看成绩”按钮时出现Frmzjm:包含的控件有:标签,图片框,计时器和MMControl控件。外观通过设置各个控件的相关属性得到。程序运行时的效果图:3、功能模块设计主要功能及实现算法:1.Frmmain:包含姓名输入框、难度和速度选择按钮,单击开始按钮就可以进行游戏了。若未输入姓名就单击“开始练习”按钮或“查看成绩”按钮,则提示用户输入姓名2.F
5、rmzjm:进入游戏后,根据难度和速度的选择,屏幕上随机产生并落下各种字符,根据用户对键盘的敲击而进行判断并进行计分。该过程的时间长度有背景音乐控制,“BackMusic.mid”文件长约70秒,音乐停止,游戏结束,保存结果。过程中按下F1弹出键盘布局窗口,按下Esc按钮就会提示是否退出游戏,选择“是”就会退出并保存。3.Frmscore:分数查询窗口,单击“返回”退出Frmscore,弹出Frmmain.4.Frmjp:键盘布局窗口一、设计中遇到的问题与解决办法【问题1】:速度和难度的选择【解决办法
6、】:通过将速度选择的三个按钮和难度选择的三个按钮设置为控件数组而实现这个功能【问题2】:游戏时间的设置,即Lbltime的计时事件【解决办法】:通过代码实现:PrivateSubTimer2_Timer()'用于控制打字时间StaticmAsInteger,sAsIntegers=s+1Ifs>=60Thenm=s60s=0EndIfLbltime.Caption=m&":"&sEndSub【问题3】:背景音乐的播放【解决办法】:通过掌握对MMControl控件的使用方法,实现了游戏一开始就会播放背
7、景音乐的效果。代码如下:MMControl1.FileName=App.Path&"BackMusic.mid"MMControl1.Command="open"MMControl1.Command="play"当背景音乐停止时,游戏结束,弹出提示框。代码如下:PrivateSubMMControl1_Done(NotifyCodeAsInteger)'控制音乐MMControl1.Command="close"IfMsgBox(Frmmain.Textname.Text&",本次练习您的成绩是"&
8、score&"分。游戏结束,继续吗?",vbYesNo,"打字练习")=vbNoThenUnloadFrmzjmFrmmain.ShowOpenApp.Path&"Score.txt"ForAppendAs#1Print#1,"您的姓名是:"&Frmmain.Textname.Text&"得分是:"&score&"分时间是:"&Now()Close1EndIfEndSub【问题4】:字符的产生、运动及重新产生。【解决办法】:定义两个函数sc和csc,分
此文档下载收益归作者所有