课程设计报告---打冰雹游戏。
1. 功能“打冰雹游戏”是指从窗口顶部落下多个圆球表示的“冰雹”,用户使用鼠标来指引箭头表示的“枪”瞄准其中一个圆球,单击鼠标射击。如果打中圆球加分,没打中减分。若累计有五个圆球一直未被击中而落到地面(用水平黑线表示)则失败。
用户玩游戏的目标是在尽量短的时间内得尽量多的分数,同时避免圆球落地。1.程序启动时自动进入游戏状态,10个不同颜色的圆球从窗口顶部向下运动。
用户使用鼠标指向其中一个圆球,然后单击。如果击中圆球则加1分,未击中则减1分,分数显示在“得分”文本框中。“所用时间”文本框中显示当前已用的时间。
被击中的圆球立即消失,新的圆球从顶部下落。2.要求同时显示十个圆球,每个圆球的颜色和下落速度各不相同。
窗口底部的箭头一直指向鼠标指针的方向。单击鼠标射击时,显示一条箭头发出到达鼠标指针的直线表示子弹轨迹。3.
程序共有四个难度等级,分别是“简单”,“中等”,“较难”和“高级”。默认的难度为“中等”。不同的等级对应不同的总体下落速度。
在游戏过程中,随时可以通过“选择难度”组合框来改变难度级别。4.游戏开始时,提供的能量数是5。
如果有一个圆球落到地面则减1。当能量为0时,显示“失败”消息框。然后程序自动将难度改为简单让用户重新开始,这时能量恢复为5,得分从零开始。
圆球落地后立即消失,新的圆球从顶部落下,窗口上始终保持有10个圆球。5.游戏过程中,当得分达到不同的分数时分别显示不同的消息框,并自动改变级别。
二。设计1.控制鼠标下落以及鼠标单击事件。
“冰雹”使用了10个shape控件组成的控件数组shp1,采用随机数生成不同的颜色不同的速度以及不同的下落位置,tmr1每发送一次timer事件改变shp1的top值使其下落。用窗体的mouseup事件判断鼠标单击位置是否“冰雹”所在位置,其中用了a,b两个变量保存“冰雹”的圆心,通过公式计算鼠标单击位置是否shape控件所在位置。如果击中“冰雹”则得分加一,并改变shp1的top值,使其继续从顶端下落,并随机赋予不同的颜色和下落速度。
2.显示所用时间。使用一个timer控件和文本框显示所用时间,timer的interval值为一千,即每隔一秒发送一次timer事件,定义整形变量int1,int2,int3保存秒,分和小时,用format函数使其显示成时间的样式。
3.控制箭头随鼠标指针位置变化。通过mousemove事件确定鼠标指针的位置。
箭头随鼠标指针位置转动时,有一点位置始终不变,通过计算鼠标指针位置与过这一点的水平直线所成的角度计算出其他直线与水平直线所成的角度,并通过计算直线的长度最终确定另外五个直线交点的位置,然后改变line控件的x,y属性值控制箭头随鼠标指针位置转动。指向鼠标指针的直线是在mouseup事件中用line方法连接箭头与鼠标指针所在点,并用cls方法和另一个timer控件使得直线在一定时间内消失。4.
设置不同的难度等级。游戏共有四个难度等级,不同的等级对应tmr1的不同interval值。三.难点和调试1. 我认为窗体底部箭头随鼠标指针位置变化而转动是难点之一,程序设计过程初我想了很多办法都不是很可行,后来在一个同学的提议下我试了通过计算角度确定点的位置,最后完成了程序。
即使想出了方法要计算公式也是个比较复杂的过程,角度和坐标正负的取值问题也是比较繁琐。2. 程序设计中遇到的另一个问题就是控件数组的表示。我使用的是for……next……语句,变量i从0取到9,于是在计算得分的时候出现了问题。
《打冰雹》游戏vb课程设计报告
2.显示所用时间。使用一个timer控件和文本框显示所用时间,timer的interval值为一千,即每隔一秒发送一次timer事件,定义整形变量int1,int2,int3保存秒,分和小时,用format函数使其显示成时间的样式。3.控制箭头随鼠标指针位置变化。通过mousemove事件确定鼠标指...
VB猜数字游戏课程设计报告
东华理工大学。vb课程设计。题目 猜数字游戏班级 10410111学号 1041011112姓名 石头指导老师 吴强。一 课程设计的目的。课程设计为学生提供了一个既能动手又能动脑,独立实践的机会,将课本上的vb课理论知识和实践有机的结合起来,锻炼学生的分析解决实际问题的能力 提高运用vb应用的能力。...
vb课程设计 打字游戏
东华理工大学。vb课程设计报告。目录。一 课程设计的目的与要求。二 界面组成。三 流程图。四 工程 五 主函数分析。六 实验心得。一 课程设计的目的与要求。1 教学目的。运用所学vb语言知识,对vb语言中基本数据类型 语法 数组 函数 结构 文件以及数据库等的操作,使学生全面掌握面向对象的可视化程序...