vb程序游戏设计.docx
- 文档编号:23897639
- 上传时间:2023-05-22
- 格式:DOCX
- 页数:31
- 大小:459.24KB
vb程序游戏设计.docx
《vb程序游戏设计.docx》由会员分享,可在线阅读,更多相关《vb程序游戏设计.docx(31页珍藏版)》请在冰豆网上搜索。
vb程序游戏设计
vb程序游戏设计(总40页)
摘要
VisualBasic是一款可视化的,面向对象和采用事件驱动方式的结构化高级程序设计语言,可用于开发windows环境下的种类应用程序。
它简单易学,效率高,且功能强大,可以与Windows专业开发工具相媲美。
在VisualBasic环境下,利用事出有因件驱动的编程机制,新颖易用的可视化工具,使用Windows内部的广泛应用程序接口(API)函数,运用动态链接库(DLL),对象的链接与嵌入(OLE),开放式数据连接(ODBC)等技术,可以高效,可以快速地开发Windows环境不功能强大,图形界面丰富的程序。
为了适应信息化时代的需求,各高校对大多数专业都开设了一定的计算机语言课程,有的讲授VisualBasic语言。
VisualBasic以其语法简单,可视化设计,功能强大,为许多学校计算机语言课程的首选语言。
目前国内各出版了大量的VisualBasic语言教程,它们都具有同样的特点:
介绍语言的语法等基本知识,再辅助一些简单的示例。
学生通过学习,可能能够考一个不错的成绩,但所掌握的仍然是一些支离破碎的知识,不能将所有的知识融会贯通,遇到具体的程序设计,还是无从下手。
这次我要做的是计算器,通过这样程序设计,我们可以学到好多关于VB语言的使方法,熟悉VisualBasic的运行环境,快速掌握VB语言!
小小的计算器是我们学VB初级语言的最好课程 。
一功能描述
1.功能
可以简单进行简单的坦克大战游戏,从而实现坦克战争的模拟。
2.实验目的
这次我要做的是坦克大战小游戏,通过这样程序设计,我们可以学到好多关于VB语言的使方法,熟悉VisualBasic的运行环境,快速掌握VB语言!
二概要设计
1.界面设计
2.程序运行:
三、设计结果
生成可执行程序运行结果
四、程序源代码:
DimCChangeAsBoolean
DimOldXAsLong
DimOldYAsLong
DimWwWAsLong
DimWwW2AsLong
DimHP1AsLong
DimHP2AsLong
PrivateDeclareFunctionsndPlaySoundLib"winmm"Alias"sndPlaySoundA"(ByVallpszSoundNameAsString,ByValuFlagsAsLong)AsLong
PrivateConstSND_ASYNC=&H1
PrivateDeclareFunctionGetAsyncKeyStateLib"user32"(ByValvKeyAsLong)AsInteger
DimL(99999)Aserf
DimL2(99999)Aserf
DimW(9999)Aserf2
Dimw2(9999)Aserf2
DimP(9999)Aserf2
DimP2(9999)Aserf2
PrivateTypePos
XAsInteger
YAsInteger
EndType
PrivateTypeerf
YAsInteger
ColorAsLong
EndType
PrivateTypeerf2
GrowAsInteger
DamageAsInteger
XAsInteger
YAsInteger
OldXAsInteger
OldYAsInteger
XFAsInteger
YFAsInteger
ColorAsLong
typeAsLong
tagAsLong
activeAsBoolean
SizeAsLong
LifeAsInteger
GravAsInteger
EndType
DimMovementAsInteger
DimTurnAsBoolean
PrivateSubCommand1_Click()
Turn=True
EndSub
PrivateSubForm_Load()
DimTempAsInteger
'Pickswhichlayout
Temp=MsgBox("Grass-Dirt-Mars",vbYesNoCancel,"")
IfTemp=7Then
=RGB(40,40,40)
EndIf
IfTemp=2Then
=RGB(100,0,0)
EndIf
'Setsdefaults
Movement=50
HP1=100
HP2=100
=
=
Turn=True
=Nothing
=True
'Setswheelpositions
Fori=0To3
W(i).XF=0
W(i).YF=0
W(i).X=i*10+100
W(i).Y=2
W(i).Color=RGB(125,125,125)
w2(i).XF=0
w2(i).YF=0
w2(i).X=i*10+-200
w2(i).Y=2
w2(i).Color=RGB(125,125,125)
Next
L(0).Y=/4*3
Randomize
'=Temp(DEBUG)
'Setsupground
Fori=1To
IfTemp=6Then
L(i).Y=L(i-1).Y+Int(Rnd*4)-Int(Rnd*4)
L(i).Color=RGB(0,160+Int(Rnd*25),0)
Else
IfTemp=7Then
L(i).Y=L(i-1).Y+Int(Rnd*6)-Int(Rnd*6)
L(i).Color=RGB(30+Int(Rnd*25)-Int(Rnd*25),30+Int(Rnd*25)-Int(Rnd*25),0)
Else
IfTemp=2Then
L(i).Y=L(i-1).Y+Int(Rnd*8)-Int(Rnd*8)
L(i).Color=RGB(160+Int(Rnd*25),0,0)
EndIf
EndIf
EndIf
Next
Fori=0To10
IfTemp=6Then
ff=Int(Rnd*
BoomInt(ff),0,10,15,0,0,1
EndIf
IfTemp=7Then
ff=Int(Rnd*
BoomInt(ff),0,20,20,0,0,1
EndIf
IfTemp=2Then
ff=Int(Rnd*
BoomInt(ff),0,30,30,0,0,1
ff=Int(Rnd*
BoomInt(ff),0,30,30,0,0,1
EndIf
Next
Fori=2To-8Step1
L(i).Y=(L(i-1).Y+L(i).Y+L(i+1).Y+L(i-2).Y+L(i+2).Y)/5
Next
=True
Fori=2To
=3
(i-2,L(i).Y)-(i-2,,L(i).Color
Next
=False
=True
EndSub
PrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
Movement=50
Turn=NotTurn
IfTurn=TrueThen
=True
Else
=True
EndIf
=True
=True
OldX=W(0).X'x
OldY=W(0).Y'y
IfTurn=TrueThen
=W(0).X+20
=W(0).Y-30
Else
=w2(0).X+20
=w2(0).Y-30
EndIf
=X
=Y
IfTurn=TrueThen
=-/2
=-/2
Else
=-/2
=-/2
EndIf
DimPos1AsPos
DimPos2AsPos
=
=
=
=
-
="Strength:
"&((Abs-+Abs-)/2&"|Angle"&GetAngle(Pos1,Pos2))
EndSub
PrivateSubForm_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
IfButton<>0Then
=X
=Y
If1=1Then'((Abs-+Abs-)/2)<150Then
IfTurn=TrueThen
=W(0).X+20
=W(0).Y-30
Else
=w2(0).X+20
=w2(0).Y-30
EndIf
=X
=Y
'=-/2
'=-/2
IfTurn=TrueThen
=-/2
=-/2
Else
=-/2
=-/2
EndIf
IfTurn=TrueThen
-
Else
-
EndIf
DimPos1AsPos
DimPos2AsPos
=
=
=
=
="Strength:
"&((Abs-+Abs-)/2&"|Angle"&GetAngle(Pos1,Pos2))
EndIf
EndIf
EndSub
PrivateSubNewMissle(XAsInteger,YAsInteger,ColorAsLong,TypeeAsInteger,XFAsInteger,YFAsInteger)
'Createsanewmissle
Fori=0To99
IfP(i).active=FalseThen
P(i).X=X
P(i).Y=Y
P(i).XF=XF
P(i).YF=YF
P(i).type=Typee
P(i).Color=Color
P(i).active=True
IfTypee=1Then
P(i).Damage=10
EndIf
IfTypee=2Then
P(i).Damage=30
EndIf
IfTypee=3Then
P(i).Damage=10
EndIf
IfTypee=4Then
P(i).Damage=10
EndIf
IfTypee=5Then
P(i).Damage=5
EndIf
IfTypee=6Then
P(i).Damage=20
EndIf
ExitSub
EndIf
Next
EndSub
PrivateSubForm_MouseUp(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
CallsndPlaySound(ByVal&"/",SND_ASYNC)
DimTypeRAsInteger
TypeR=1
IfTurn=TrueThen
'Zorderswhichammoplayerthing;)
z=0
Label2(0).ZOrder0
Label3(0).ZOrder0
Label4(0).ZOrder0
Label5(0).ZOrder0
Label6(0).ZOrder0
Else
z=1
Label2
(1).ZOrder0
Label3
(1).ZOrder0
Label4
(1).ZOrder0
Label5
(1).ZOrder0
Label6
(1).ZOrder0
EndIf
=False
=False
If=TrueThen
IfLabel2(z).Caption>0Then
TypeR=2
Label2(z).Caption=Label2(z).Caption-1
Else
=True
EndIf
EndIf
If=TrueThen
IfLabel3(z).Caption>0Then
TypeR=3
Label3(z).Caption=Label3(z).Caption-1
Else
=True
EndIf
EndIf
If=TrueThen
IfLabel4(z).Caption>0Then
TypeR=4
Label4(z).Caption=Label4(z).Caption-1
Else
=True
EndIf
EndIf
If=TrueThen
IfLabel5(z).Caption>0Then
TypeR=5
Label5(z).Caption=Label5(z).Caption-1
Else
=True
EndIf
EndIf
If=TrueThen
IfLabel6(z).Caption>0Then
TypeR=6
Label6(z).Caption=Label6(z).Caption-1
Else
=True
EndIf
EndIf
'Turn=False
WwW=6
IfTurn=TrueThen
NewMissleW(0).X+20,W(0).Y-10,vbRed,TypeR,-/10,-/10
IfTypeR=4Then
NewMissleW(0).X+20,W(0).Y-10,vbRed,TypeR,-/10+Int(Rnd*10)-Int(Rnd*10),-/10+Int(Rnd*10)-Int(Rnd*10)
NewMissleW(0).X+20,W(0).Y-10,vbRed,TypeR,-/10+Int(Rnd*10)-Int(Rnd*10),-/10+Int(Rnd*10)-Int(Rnd*10)
NewMissleW(0).X+20,W(0).Y-10,vbRed,TypeR,-/10+Int(Rnd*10)-Int(Rnd*10),-/10+Int(Rnd*10)-Int(Rnd*10)
NewMissleW(0).X+20,W(0).Y-10,vbRed,TypeR,-/10+Int(Rnd*10)-Int(Rnd*10),-/10+Int(Rnd*10)-Int(Rnd*10)
EndIf
Else
NewMisslew2(0).X+20,w2(0).Y-10,vbRed,TypeR,-/10,-/10
IfTypeR=4Then
NewMisslew2(0).X+20,w2(0).Y-10,vbRed,TypeR,-/10+Int(Rnd*10)-Int(Rnd*10),-/10+Int(Rnd*10)-Int(Rnd*10)
NewMisslew2(0).X+20,w2(0).Y-10,vbRed,TypeR,-/10+Int(Rnd*10)-Int(Rnd*10),-/10+Int(Rnd*10)-Int(Rnd*10)
NewMisslew2(0).X+20,w2(0).Y-10,vbRed,TypeR,-/10+Int(Rnd*10)-Int(Rnd*10),-/10+Int(Rnd*10)-Int(Rnd*10)
NewMisslew2(0).X+20,w2(0).Y-10,vbRed,TypeR,-/10+Int(Rnd*10)-Int(Rnd*10),-/10+Int(Rnd*10)-Int(Rnd*10)
EndIf
EndIf
EndSub
PrivateSubBoom(XAsInteger,YAsInteger,SizeAsInteger,digAsInteger,DamAsInteger,OptionalInvertAsInteger,OptionalNoDrawAsInteger)
IfX<1ThenExitSub
CallsndPlaySound(ByVal&"/",SND_ASYNC)
OnErrorResumeNext
IfX+Size/2>w2(0).XAndX-Size/2 HP2=HP2-Dam CallsndPlaySound(ByVal&"/",SND_ASYNC) EndIf IfX+Size/2>W(0).XAndX-Size/2 HP1=HP1-Dam CallsndPlaySound(ByVal&"/",SND_ASYNC) EndIf =1 Fori=0To L2(i).Y=L(i).Y Next Fori=0ToSize IfInvert=1Then L(X+i).Y=L(X+i).Y-dig Else L(X+i).Y=L(X+i).Y+dig-i EndIf Next Fori=1ToSize IfInvert=1Then L(X-i).Y=L(X-i).Y-dig Else L(X-i).Y=L(X-i).Y+dig-i EndIf Next =False ' '=Nothing =True IfNoDraw<>1Then Fori=2ToStep1 IfL2(i).Y<>L(i).YThen L2(i).Y=(L2(i-1).Y+L2(i).Y+L2(i+1).Y+L2(i-2).Y+L2(i+2).Y)/5 (i-2,0)-(i-2,, (i-2,L(i).Y)-(i-2,,L(i).Color EndIf Next EndIf =False EndSub PrivateSubNewPart(SizeeAsInteger,XAsInteger,YAsInteger,OXAsInteger,OYAsInteger,GrowAsInteger,ColorAsLong,XFAsLong,YFAsLong,LifeAsInteger,GravAsInteger) Fori=0To900 IfP2(i).active=FalseThen P2(i).active=True P2(i).Size=Sizee P2(i).X=X P2(i).Y=Y P2(i).XF=XF P2(i).YF=YF P2(i).OldX=OX P2(i).OldY=OY P2(i).Grow=Grow P2(i).Color=Color P2(i).Life=Life P2(i).Grav=Grav ExitFor EndIf Next EndSub PrivateSubTimer1_Timer() IfHP1<0Then MsgBox"Player2Wins! " HP1=0 End EndIf IfHP2<0Then MsgBox"Player1Wins! " HP2=0 End EndIf L (2).Y=999 If<>"Health: "&HP1Then ="Health: "&HP1 EndIf If<>"Health: "&HP2Then ="Health: "&HP2 EndIf IfCChange=TrueThen EndIf CChange=False IfHP1>0Then IfGetAsyncKeyState(vbKeyRight)Then Movement=Movement-1 CChange=True IfMovement>0Then IfTurn=FalseThen Fori=0To3 IfL(W(3).X-2).Y-10 W(i).XF=W(i).XF+2 EndIf IfW(i).Y+W(i).YF>L(W(i).X-2).YThen W(i).Y=L(W(i).X-2).Y-1 EndIf Next Else Fori=0To3 IfL(w2(3).X-2).Y-10 w2(i).XF=w2(i).XF+2 EndIf Ifw2(i).Y
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- vb 程序 游戏 设计