vb程序游戏设计.docx

上传人:b****8 文档编号:30559483 上传时间:2023-08-16 格式:DOCX 页数:31 大小:161.53KB
下载 相关 举报
vb程序游戏设计.docx_第1页
第1页 / 共31页
vb程序游戏设计.docx_第2页
第2页 / 共31页
vb程序游戏设计.docx_第3页
第3页 / 共31页
vb程序游戏设计.docx_第4页
第4页 / 共31页
vb程序游戏设计.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

vb程序游戏设计.docx

《vb程序游戏设计.docx》由会员分享,可在线阅读,更多相关《vb程序游戏设计.docx(31页珍藏版)》请在冰豆网上搜索。

vb程序游戏设计.docx

vb程序游戏设计

摘要

 

VisualBasic6.0是一款可视化的,面向对象和采用事件驱动方式的结构化高级程序设计语言,可用于开发windows环境下的种类应用程序。

它简单易学,效率高,且功能强大,可以与Windows专业开发工具相媲美。

在VisualBasic环境下,利用事出有因件驱动的编程机制,新颖易用的可视化工具,使用Windows部的广泛应用程序接口(API)函数,运用动态库(DLL),对象的与嵌入(OLE),开放式数据连接(ODBC)等技术,可以高效,可以快速地开发Windows环境不功能强大,图形界面丰富的程序。

为了适应信息化时代的需求,各高校对大多数专业都开设了一定的计算机语言课程,有的讲授VisualBasic语言。

VisualBasic以其语法简单,可视化设计,功能强大,为许多学校计算机语言课程的首选语言。

目前国各出版了大量的VisualBasic语言教程,它们都具有同样的特点:

介绍语言的语法等基本知识,再辅助一些简单的示例。

学生通过学习,可能能够考一个不错的成绩,但所掌握的仍然是一些支离破碎的知识,不能将所有的知识融会贯通,遇到具体的程序设计,还是无从下手。

这次我要做的是计算器,通过这样程序设计,我们可以学到好多关于VB语言的使方法,熟悉VisualBasic6.0的运行环境,快速掌握VB语言!

小小的计算器是我们学VB初级语言的最好课程 。

一功能描述3

1.功能3

2.实验目的3

二概要设计4

1.界面设计4

2.程序运行5

三设计结果6

四程序源代码7

五设计总结40

六参考文献41

 

一功能描述

1.功能

可以简单进行简单的坦克大战游戏,从而实现坦克战争的模拟。

2.实验目的

这次我要做的是坦克大战小游戏,通过这样程序设计,我们可以学到好多关于VB语言的使方法,熟悉VisualBasic6.0的运行环境,快速掌握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

Me.BackColor=RGB(40,40,40)

EndIf

IfTemp=2Then

Me.BackColor=RGB(100,0,0)

EndIf

'Setsdefaults

Movement=50

HP1=100

HP2=100

Me.Height=Screen.Height

Me.Width=Screen.Width

Turn=True

Me.Cls

Me.Picture=Nothing

Me.Refresh

Me.AutoRedraw=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+Me.ScaleWidth-200

w2(i).Y=2

w2(i).Color=RGB(125,125,125)

Next

L(0).Y=Me.ScaleHeight/4*3

Randomize

'Me.Caption=Temp(DEBUG)

'Setsupground

Fori=1ToMe.Width

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*Screen.Width)

BoomInt(ff),0,10,15,0,0,1

EndIf

IfTemp=7Then

ff=Int(Rnd*Screen.Width)

BoomInt(ff),0,20,20,0,0,1

EndIf

IfTemp=2Then

ff=Int(Rnd*Screen.Width)

BoomInt(ff),0,30,30,0,0,1

ff=Int(Rnd*Screen.Width)

BoomInt(ff),0,30,30,0,0,1

EndIf

Next

Fori=2ToMe.Width-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

Me.AutoRedraw=True

Fori=2ToMe.Width

Me.DrawWidth=3

Me.Line(i-2,L(i).Y)-(i-2,Me.ScaleHeight),L(i).Color

Next

Me.Refresh

Me.AutoRedraw=False

Timer1.Enabled=True

EndSub

PrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)

Movement=50

Turn=NotTurn

IfTurn=TrueThen

Shape1.Visible=True

Else

Shape2.Visible=True

EndIf

Line1.Visible=True

lblStrength.Visible=True

OldX=W(0).X'x

OldY=W(0).Y'y

IfTurn=TrueThen

Line1.X1=W(0).X+20

Line1.Y1=W(0).Y-30

Else

Line1.X1=w2(0).X+20

Line1.Y1=w2(0).Y-30

EndIf

Line1.X2=X

Line1.Y2=Y

IfTurn=TrueThen

Shape1.Left=Line1.X2-Shape1.Width/2

Shape1.Top=Line1.Y2-Shape1.Height/2

Else

Shape2.Left=Line1.X2-Shape1.Width/2

Shape2.Top=Line1.Y2-Shape1.Height/2

EndIf

DimPos1AsPos

DimPos2AsPos

Pos1.X=Line1.X2

Pos2.X=Line1.X1

Pos1.Y=Line1.Y2

Pos2.Y=Line1.Y1

lblStrength.MoveShape1.Left,Shape1.Top-lblStrength.Height

lblStrength.Caption="Strength:

"&((Abs(Line1.X1-Line1.X2)+Abs(Line1.Y1-Line1.Y2))/2&"|Angle"&GetAngle(Pos1,Pos2))

EndSub

PrivateSubForm_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)

IfButton<>0Then

Line1.X2=X

Line1.Y2=Y

If1=1Then'((Abs(Line1.X1-Line1.X2)+Abs(Line1.Y1-Line1.Y2))/2)<150Then

IfTurn=TrueThen

Line1.X1=W(0).X+20

Line1.Y1=W(0).Y-30

Else

Line1.X1=w2(0).X+20

Line1.Y1=w2(0).Y-30

EndIf

Line1.X2=X

Line1.Y2=Y

'Shape1.Left=Line1.X2-Shape1.Width/2

'Shape1.Top=Line1.Y2-Shape1.Height/2

IfTurn=TrueThen

Shape1.Left=Line1.X2-Shape1.Width/2

Shape1.Top=Line1.Y2-Shape1.Height/2

Else

Shape2.Left=Line1.X2-Shape1.Width/2

Shape2.Top=Line1.Y2-Shape1.Height/2

EndIf

IfTurn=TrueThen

lblStrength.MoveShape1.Left,Shape1.Top-lblStrength.Height

Else

lblStrength.MoveShape2.Left,Shape2.Top-lblStrength.Height

EndIf

DimPos1AsPos

DimPos2AsPos

Pos1.X=Line1.X2

Pos2.X=Line1.X1

Pos1.Y=Line1.Y2

Pos2.Y=Line1.Y1

lblStrength.Caption="Strength:

"&((Abs(Line1.X1-Line1.X2)+Abs(Line1.Y1-Line1.Y2))/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(ByValApp.Path&"/boom.wav",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

Line1.Visible=False

lblStrength.Visible=False

IfOption2.Value=TrueThen

IfLabel2(z).Caption>0Then

TypeR=2

Label2(z).Caption=Label2(z).Caption-1

Else

Option1.Value=True

EndIf

EndIf

IfOption3.Value=TrueThen

IfLabel3(z).Caption>0Then

TypeR=3

Label3(z).Caption=Label3(z).Caption-1

Else

Option1.Value=True

EndIf

EndIf

IfOption4.Value=TrueThen

IfLabel4(z).Caption>0Then

TypeR=4

Label4(z).Caption=Label4(z).Caption-1

Else

Option1.Value=True

EndIf

EndIf

IfOption5.Value=TrueThen

IfLabel5(z).Caption>0Then

TypeR=5

Label5(z).Caption=Label5(z).Caption-1

Else

Option1.Value=True

EndIf

EndIf

IfOption6.Value=TrueThen

IfLabel6(z).Caption>0Then

TypeR=6

Label6(z).Caption=Label6(z).Caption-1

Else

Option1.Value=True

EndIf

EndIf

'Turn=False

WwW=6

IfTurn=TrueThen

NewMissleW(0).X+20,W(0).Y-10,vbRed,TypeR,(Line1.X2-Line1.X1)/10,(Line1.Y2-Line1.Y1)/10

IfTypeR=4Then

NewMissleW(0).X+20,W(0).Y-10,vbRed,TypeR,(Line1.X2-Line1.X1)/10+Int(Rnd*10)-Int(Rnd*10),(Line1.Y2-Line1.Y1)/10+Int(Rnd*10)-Int(Rnd*10)

NewMissleW(0).X+20,W(0).Y-10,vbRed,TypeR,(Line1.X2-Line1.X1)/10+Int(Rnd*10)-Int(Rnd*10),(Line1.Y2-Line1.Y1)/10+Int(Rnd*10)-Int(Rnd*10)

NewMissleW(0).X+20,W(0).Y-10,vbRed,TypeR,(Line1.X2-Line1.X1)/10+Int(Rnd*10)-Int(Rnd*10),(Line1.Y2-Line1.Y1)/10+Int(Rnd*10)-Int(Rnd*10)

NewMissleW(0).X+20,W(0).Y-10,vbRed,TypeR,(Line1.X2-Line1.X1)/10+Int(Rnd*10)-Int(Rnd*10),(Line1.Y2-Line1.Y1)/10+Int(Rnd*10)-Int(Rnd*10)

EndIf

Else

NewMisslew2(0).X+20,w2(0).Y-10,vbRed,TypeR,(Line1.X2-Line1.X1)/10,(Line1.Y2-Line1.Y1)/10

IfTypeR=4Then

NewMisslew2(0).X+20,w2(0).Y-10,vbRed,TypeR,(Line1.X2-Line1.X1)/10+Int(Rnd*10)-Int(Rnd*10),(Line1.Y2-Line1.Y1)/10+Int(Rnd*10)-Int(Rnd*10)

NewMisslew2(0).X+20,w2(0).Y-10,vbRed,TypeR,(Line1.X2-Line1.X1)/10+Int(Rnd*10)-Int(Rnd*10),(Line1.Y2-Line1.Y1)/10+Int(Rnd*10)-Int(Rnd*10)

NewMisslew2(0).X+20,w2(0).Y-10,vbRed,TypeR,(Line1.X2-Line1.X1)/10+Int(Rnd*10)-Int(Rnd*10),(Line1.Y2-Line1.Y1)/10+Int(Rnd*10)-Int(Rnd*10)

NewMisslew2(0).X+20,w2(0).Y-10,vbRed,TypeR,(Line1.X2-Line1.X1)/10+Int(Rnd*10)-Int(Rnd*10),(Line1.Y2-Line1.Y1)/10+Int(Rnd*10)-Int(Rnd*10)

EndIf

EndIf

EndSub

PrivateSubBoom(XAsInteger,YAsInteger,SizeAsInteger,digAsInteger,DamAsInteger,OptionalInvertAsInteger,OptionalNoDrawAsInteger)

IfX<1ThenExitSub

CallsndPlaySound(ByValApp.Path&"/boom2.wav",SND_ASYNC)

OnErrorResumeNext

IfX+Size/2>w2(0).XAndX-Size/2

HP2=HP2-Dam

CallsndPlaySound(ByValApp.Path&"/hit.wav",SND_AS

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 冶金矿山地质

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1