毕业设计基于vb语言的赛车小游戏课程设计论文文档格式.docx
- 文档编号:5021386
- 上传时间:2023-05-04
- 格式:DOCX
- 页数:38
- 大小:411.67KB
毕业设计基于vb语言的赛车小游戏课程设计论文文档格式.docx
《毕业设计基于vb语言的赛车小游戏课程设计论文文档格式.docx》由会员分享,可在线阅读,更多相关《毕业设计基于vb语言的赛车小游戏课程设计论文文档格式.docx(38页珍藏版)》请在冰点文库上搜索。
二.功能介绍
程序的功能有:
①赛车游戏系统:
玩家可以通过键盘上的左右方向键操作赛车躲避路途中的障碍,在途中赛车的速度会随着时间越来越快;
②计分与记录系统:
随着游戏时间的增长,玩家在游戏中得到得分数会越来越高。
同时游戏中有一个历史分数系统,会记录下玩家所得的最高分与玩家的姓名、创造纪录的时间,并且玩家可以在菜单中的“记录”选项中查看;
③外观系统:
玩家可以选择不同的赛车外观进行游戏;
④道具系统:
游戏途中会随机出现功能不同的道具,不同的道具有不同的功能。
三.程序设计
1.界面设计
主界面:
在游戏制作中,主要想采用比较清新简单的风格,因此主界面整体设计采用黑白简洁的色调,由于对VB自带按钮外观不是很满意,自行通过picturebox控件制作了一主界面按钮。
车库界面:
游戏中内置两种不同风格外貌的车体供玩家选择,单击按键即可完成更换。
游戏说明界面:
记录界面:
显示创造纪录的玩家姓名,最高分与创纪录的时间。
游戏界面:
创新纪录时的界面:
游戏界面也是才有黑白风格,所有车子的外貌风格比较童真(=。
=我自己画的)。
2.功能设计
代码中变量:
Dimlr'
左右控制变量
Dimud'
上下控制变量
Dima'
游戏开始倒计时变量
Dimb'
调试变量
Dimmax'
最高分记录系统变量
Dimbuff'
道具系统变量
Dimmus'
音效变量
Dimmuss'
Label10.Caption:
游戏速度
Label7.Caption:
玩家得分
Label1.Caption:
玩家操作赛车左右移动速度
①基本车辆移动与操作功能:
主要通过TIMER1实现,Label10中的数字为车辆移动速度,通过定时器不断移动程序中的相关图片,产生汽车跑动的效果。
路途上的车辆通过Randomize函数产生随机数,使其出现在随机位置,当然一定是从窗口上方出现,移动到窗口最下方然后消失。
玩家赛车的控制,通过KEYDOWN与KEYUP实现,定义控制全局变量lr,来控制玩家赛车左右移动。
代码如下:
'
键盘控制:
PrivateSubForm_KeyDown(KeyCodeAsInteger,ShiftAsInteger)
IfKeyCode=vbKeyLeftThenlr="
left"
IfKeyCode=vbKeyRightThenlr="
right"
IfKeyCode=vbKeyUpThenud="
down"
IfKeyCode=vbKeyDownThenud="
up"
EndSub
PrivateSubForm_KeyUp(KeyCodeAsInteger,ShiftAsInteger)
leftstop"
rightstop"
"
‘定时器控制:
PrivateSubTimer1_Timer()
Label7.Caption=Label7.Caption+1'
计分
Shape1(0).Top=Shape1(0).Top+Label10.Caption+60'
道路中心线移动动画
IfShape1(0).Top>
Form1.HeightThenShape1(0).Top=0-Shape1(0).Height
Shape1
(1).Top=Shape1
(1).Top+Label10.Caption+60
IfShape1
(1).Top>
Form1.HeightThenShape1
(1).Top=0-Shape1
(1).Height
撞车记录成绩与吃道具代码:
Ifcar.Left+car.Width>
Picture3(0).LeftAndcar.Left<
Picture3(0).Left+Picture3(0).WidthAndcar.Top+car.Height>
Picture3(0).TopAndcar.Top<
Picture3(0).Top+Picture3(0).HeightThen
Label7.Caption=Label7.Caption+50’加分道具
Picture3(0).Left=9000’吃到道具后使道具消失
EndIf
Picture3
(1).LeftAndcar.Left<
Picture3
(1).Left+Picture3
(1).WidthAndcar.Top+car.Height>
Picture3
(1).TopAndcar.Top<
Picture3
(1).Top+Picture3
(1).HeightThen
buff=1’加速道具
Picture3
(1).Left=9000’吃到道具后使道具消失
Fors=0To2'
判断撞车代码
Ifcar.Left+car.Width-100>
Picture1(s).LeftAndcar.Left+100<
Picture1(s).Left+Picture1(s).WidthAndcar.Top+car.Height>
Picture1(s).Top+200Andcar.Top+200<
Picture1(s).Top+Picture1(s).HeightThen
Timer1.Enabled=False
Timer3.Enabled=False
Frame2.Visible=True
WindowsMediaPlayer1.URL=App.Path&
"
\MUSIC3.wav"
'
游戏结束更换音效
Ifmus=0Then'
判断背景音乐是开启还是关闭
WindowsMediaPlayer1.Controls.stop
Ifmus=1Then
muss=0
mus=0
Label6.Caption=Label7.Caption
IfVal(Label6.Caption)>
Val(Labelmax.Caption)Then
Labelmax.Caption=Label6.Caption
Label11.Visible=True
max=Labelmax.Caption
OpenApp.Path&
\point.txt"
ForOutputAs#1
Write#1,max
Close#1
nn=InputBox("
创造了新纪录!
请问您尊姓大名!
"
)
tt=Format(Date)
\name.txt"
Write#1,nn
Write#1,tt
IfPicture1(s).BackColor=RGB(0,200,0)Then
Picture1(s).BackColor=RGB(200,0,0)
Nexts
玩家汽车移动代码:
Iflr="
Then
Label1.Caption=-55-Val(Label10.Caption)/10
IfLabel1.Caption<
0ThenLabel1.Caption=0
Else:
Label1.Caption=Label1.Caption
Label1.Caption=55+Val(Label10.Caption)/10
IfLabel1.Caption>
Ifcar.Left<
0Then'
判断车子是否在游戏窗口最左右两端
Label1.Caption=0
car.Left=0
Else
car.Left=car.Left+Label1.Caption
Form1.WidthThen
car.Left=Form1.Width-car.Width
随机产生道路车辆:
Picture1(0).Top=Picture1(0).Top+Label10.Caption
IfPicture1(0).Top>
Form1.HeightThen
Picture1(0).BackColor=RGB(0,200,0)
Picture1(0).Top=-Picture1(0).Height
Randomize
xx=Int(4*(Rnd+0))
Picture1(0).Picture=Image3(xx).Picture
X=Int(6400*(Rnd+0))
Picture1(0).Left=X
Picture1
(1).Top=Picture1
(1).Top+Label10.Caption
IfPicture1
(1).Top>
Picture1
(1).BackColor=RGB(0,200,0)
Picture1
(1).Top=-Picture1
(1).Height
Picture1
(1).Picture=Image3(xx).Picture
Picture1
(1).Left=X
Picture1
(2).Top=Picture1
(2).Top+Label10.Caption
IfPicture1
(2).Top>
Picture1
(2).BackColor=RGB(0,200,0)
Picture1
(2).Top=-Picture1
(2).Height
Picture1
(2).Picture=Image3(xx).Picture
Picture1
(2).Left=X
Picture3(0).Top=Picture3(0).Top+Label10.Caption
IfPicture3(0).Top-1740>
Picture3(0).Top=-Picture3(0).Height
Picture3(0).Left=X
Picture3
(1).Top=Picture3
(1).Top+Label10.Caption
IfPicture3
(1).Top-1740>
Picture3
(1).Top=-Picture3
(1).Height
Picture3
(1).Left=X
②计分与记录系统功能:
此部分功能,计分功能通过定时器不断进行加法运算即可,而记录系统,则通过读、写外部文件的功能实现,当玩家查看纪录时,或者结束游戏时,程序会读取外部TXT文件中的内容,里面记录着纪录及其时间等信息,然后显示。
如果游戏结束时,分数大于文件中记录的纪录,那么会出发INPUTBOX窗口,让玩家输入其信息,从新写入纪录数据,代码如下:
初始化,清零全局变量,读取外部纪录文件数据与背景音乐
PrivateSubForm_Load()
a=0
b=0
buff=0
ForInputAs#1
Input#1,max
Labelmax.Caption=max
Label10.Caption=50
\MUSIC1.wma"
基于TIMER1功能:
Fors=0To2’判断是否撞车代码
Label6.Caption=Label7.Caption‘Label6为记录纪录用,Label7为计分用
Label11.Visible=True’新纪录红色NEW字样
ForOutputAs#1‘写文件
PrivateSubMaxp_Click()’打开纪录面板
Form2.Show
纪录面板FORM2代码:
DimName1'
纪录者姓名
DimTime'
纪录时间
纪录分数
PrivateSubCommand1_Click()
UnloadForm2
Input#1,Name1
Input#1,Time
Label2.Caption=Name1
Label4.Caption=Time
Label3.Caption=max
③车库系统:
此部分功能为提供两种萌萌的外貌的车体供玩家选择=。
=:
车体外貌选择:
PrivateSubCommand5_Click()
car.Picture=Picture2(0).Picture
Frame3.Visible=False
PrivateSubCommand6_Click()
car.Picture=Picture2
(1).Picture
游戏途中会随机出现两种道具,一种为加分道具,一种为加速道具,代码如下:
基于TIMER1吃道具代码:
Label7.Caption=Label7.Caption+50’计分系统,吃了道具+50分
Picture3(0).Left=9000’吃到道具后使道具消失
buff=1
Picture3
(1).Left=9000’吃到道具后使道具消失
游戏速度越来越快的代码,吃了道具会加快增速:
PrivateSubTimer3_Timer()
Ifbuff=0Then
Label10.Caption=Label10.Caption+5
ElseIfbuff=1Then
Label10.Caption=Label10.Caption+15
IfLabel10.Caption>
200Then
Label10.Caption=200
⑤背景音乐系统:
在主菜单会有背景音乐,开始游戏后与游戏结束时均会有不同的音效,并且在菜单中可以选择开启音乐或者关闭,代码如下:
mus=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 基于 vb 语言 赛车 小游戏 课程设计 论文
![提示](https://static.bingdoc.com/images/bang_tan.gif)