net编写的打砖块游戏.docx
《net编写的打砖块游戏.docx》由会员分享,可在线阅读,更多相关《net编写的打砖块游戏.docx(17页珍藏版)》请在冰豆网上搜索。
net编写的打砖块游戏
打砖块游戏
【实验名称】
打砖块游戏
【实验目的】
通过对大砖块游戏的编写,深入了解面向对象的程序的思想与实现,并能初步掌握对于在VB.Net下的消息机制的调用以及对控件位置的操作和对时间变量的使用。
【掌握内容】
通过这个实验,掌握了程序设计的算法,数据结构常识,数据定义、输入和输出,函数过程,函数的参数传递等知识点,以及VB面向对象的一些编程技能。
掌握基于模块的窗体之间的调用,控件数组的建立及使用,和下的基本控件(如:
button)的运用,利用按键控制button的位置移动。
使用timer控件控制的自动移动。
【问题描述及基本要求】
本程序是一个担任操作的游戏。
玩家通过难度选择来决定砖块的数量和布局,每人有三次玩的机会,但在游戏的过程中随着宝物的获取,也可以在次获得玩的机会。
在宝物中有加快游戏速度,或者是挡板变短等功能。
在游戏结束后,玩家也可看到自己相应的得分。
【算法描述】
PublicClassForm1
PrivatexAsInteger=5
PrivateyAsInteger=5
PrivatelifeAsInteger=3
PrivatenumAsInteger
PrivatescoreAsInteger
PrivatetAsInteger=0
PrivateSubForm1_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Load
baffle.Text=""
brick.Text=""
baffle.BackColor=Color.Black
brick.BackColor=Color.Black
brick.Width=10
brick.Height=10
initialize()
initializebrick()
Timer1.Interval=100
Label1.Text="得分为:
"+score.ToString
EndSub
PrivateSubclear()
DimresAsInteger
DimbtnAsControl
ForEachbtnInControls
Ifbtn.Text=""Orbtn.Text="L"Orbtn.Text="R"Orbtn.Text="W"Orbtn.Text="Q"Then
res+=1
EndIf
Next
Whileres>0
DimoldbtnAsControl
ForEacholdbtnInControls
Ifoldbtn.Text=""Oroldbtn.Text="L"Oroldbtn.Text="R"Oroldbtn.Text="W"Oroldbtn.Text="Q"Then
Me.Controls.Remove(oldbtn)
res-=1
EndIf
Next
EndWhile
num=0
EndSub
PrivateSubinitialize()
baffle.Left=Me.ClientSize.Width/2-baffle.Width/2
baffle.Top=Me.ClientSize.Height-baffle.Height
brick.Top=baffle.Top-brick.Height
brick.Left=baffle.Left+baffle.Width/2-brick.Width/2
life=3
score=0
t=0
Label1.Text="得分为:
"+score.ToString
EndSub
PrivateSubinitializebrick()
clear()
Timer1.Interval=100
initialize()
Form=1To4
Ifm=1Then
Forn=1To6
DimbtnAsNewButton
btn.Text=""
btn.Name=num.ToString
btn.BackColor=Color.Red
btn.Width=Me.Width/6
btn.Height=20
btn.Left=btn.Width*(n-1)
btn.Top=MenuStrip1.Height+btn.Height*(m-1)
Me.Controls.Add(btn)
num+=1
Next
EndIf
Ifm=2Then
Forn=1To4
DimbtnAsNewButton
btn.Text=""
btn.Name=num.ToString
btn.BackColor=Color.Yellow
btn.Width=Me.Width/6
btn.Height=20
btn.Left=btn.Width*(n)
btn.Top=MenuStrip1.Height+btn.Height*(m-1)
Me.Controls.Add(btn)
num+=1
Next
EndIf
Ifm=3Then
Forn=1To2
DimbtnAsNewButton
btn.Text=""
btn.Name=num.ToString
btn.BackColor=Color.Blue
btn.Width=Me.Width/6
btn.Height=20
btn.Left=btn.Width*(n+1)
btn.Top=MenuStrip1.Height+btn.Height*(m-1)
Me.Controls.Add(btn)
num+=1
Next
EndIf
Ifm=4Then
Forn=1To2
DimbtnAsNewButton
btn.Text=""
btn.Name=num.ToString
btn.BackColor=Color.Green
btn.Width=Me.Width/6
btn.Height=20
btn.Left=(Me.ClientSize.Width-btn.Width)/2
btn.Top=MenuStrip1.Height+btn.Height*(m-1)
Me.Controls.Add(btn)
num+=1
Next
EndIf
Next
EndSub
PrivateSub开始ToolStripMenuItem_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles开始ToolStripMenuItem.Click
Timer1.Start()
EndSub
PrivateSub操作ToolStripMenuItem_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles操作ToolStripMenuItem.Click
MessageBox.Show("游戏规则"+vbNewLine+"挡板向左:
a"+vbNewLine+"挡板向右:
b"+vbNewLine+"暂停:
p"+vbNewLine+"开始:
空格")
EndSub
PrivateSub关于ToolStripMenuItem_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles关于ToolStripMenuItem.Click
MessageBox.Show("此游戏由靳晶晶开发。
")
EndSub
PrivateSub初级ToolStripMenuItem_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles初级ToolStripMenuItem.Click
Timer1.Stop()
clear()
Timer1.Interval=100
initialize()
Form=1To4
Ifm=1Then
Forn=1To6
DimbtnAsNewButton
btn.Text=""
btn.Name=num.ToString
btn.BackColor=Color.Red
btn.Width=Me.Width/6
btn.Height=20
btn.Left=btn.Width*(n-1)
btn.Top=MenuStrip1.Height+btn.Height*(m-1)
Me.Controls.Add(btn)
num+=1
Next
EndIf
Ifm=2Then
Forn=1To4
DimbtnAsNewButton
btn.Text=""
btn.Name=num.ToString
btn.BackColor=Color.Yellow
btn.Width=Me.Width/6
btn.Height=20
btn.Left=btn.Width*(n)
btn.Top=MenuStrip1.Height+btn.Height*(m-1)
Me.Controls.Add(btn)
num+=1
Next
EndIf
Ifm=3Then
Forn=1To2
DimbtnAsNewButton
btn.Text=""
btn.Name=num.ToString
btn.BackColor=Color.Blue
btn.Width=Me.Width/6
btn.Height=20
btn.Left=btn.Width*(n+1)
btn.Top=MenuStrip1.Height+btn.Height*(m-1)
Me.Controls.Add(btn)
num+=1
Next
EndIf
Ifm=4Then
Forn=1To2
DimbtnAsNewButton
btn.Text=""
btn.Name=num.ToString
btn.BackColor=Color.Green
btn.Width=Me.Width/6
btn.Height=20
btn.Left=(Me.ClientSize.Width-btn.Width)/2
btn.Top=MenuStrip1.Height+btn.Height*(m-1)
Me.Controls.Add(btn)
num+=1
Next
EndIf
Next
EndSub
PrivateSub中级ToolStripMenuItem_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles中级ToolStripMenuItem.Click
Timer1.Stop()
clear()
Timer1.Interval=75
initialize()
Forn=1To6
Ifn=1Orn=6Then
DimbtnAsNewButton
btn.Text=""
btn.Name=num.ToString
btn.BackColor=Color.Blue
btn.Width=Me.Width/6
btn.Height=20
btn.Left=btn.Width*(n-1)
btn.Top=MenuStrip1.Height+btn.Height*2
Me.Controls.Add(btn)
num+=1
EndIf
Ifn=2Orn=5Then
Form=1To2
DimbtnAsNewButton
btn.Text=""
btn.Name=num.ToString
btn.BackColor=Color.Blue
btn.Width=Me.Width/6
btn.Height=20
btn.Left=btn.Width*(n-1)
Ifm=1Then
btn.Top=MenuStrip1.Height+btn.Height*1
ElseIfm=2Then
btn.Top=MenuStrip1.Height+btn.Height*3
EndIf
Me.Controls.Add(btn)
num+=1
Next
EndIf
Ifn=3Orn=4Then
Form=1To2
DimbtnAsNewButton
btn.Text=""
btn.Name=num.ToString
btn.BackColor=Color.Blue
btn.Width=Me.Width/6
btn.Height=20
btn.Left=btn.Width*(n-1)
Ifm=1Then
btn.Top=MenuStrip1.Height
ElseIfm=2Then
btn.Top=MenuStrip1.Height+btn.Height*4
EndIf
Me.Controls.Add(btn)
num+=1
Next
EndIf
Next
DimxbtnAsNewButton
xbtn.Text=""
xbtn.Name=num.ToString
xbtn.BackColor=Color.Red
xbtn.Width=Me.Width/6
xbtn.Height=20
xbtn.Left=Me.ClientSize.Width/2-xbtn.Width/2
xbtn.Top=MenuStrip1.Height+xbtn.Height*2
Me.Controls.Add(xbtn)
num+=1
EndSub
PrivateSub高级ToolStripMenuItem_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles高级ToolStripMenuItem.Click
Timer1.Stop()
clear()
Timer1.Interval=50
initialize()
DimxinAsNewButton
xin.Name=num.ToString
xin.Text=""
xin.BackColor=Color.Red
xin.Width=30
xin.Height=30
xin.Left=Me.ClientSize.Width/2
xin.Top=160
Me.Controls.Add(xin)
num+=1
DimrAsDouble
r=60
Forn=1To12
DimbtnAsNewButton
btn.Name=num.ToString
btn.Text=""
btn.BackColor=Color.OrangeRed
btn.Width=30
btn.Height=30
btn.Left=xin.Left-r*System.Math.Sin(3.14/180*(30*(n-1)))
btn.Top=xin.Top+r*System.Math.Cos(3.14/180*(30*(n-1)))
Me.Controls.Add(btn)
num+=1
Next
Form=1To12
DimbtnAsNewButton
btn.Name=num.ToString
btn.Text=""
btn.BackColor=Color.Orange
btn.Width=30
btn.Height=30
btn.Left=xin.Left-r*2*System.Math.Sin(3.14/180*(30*(m-1)))
btn.Top=xin.Top+r*2*System.Math.Cos(3.14/180*(30*(m-1)))
Me.Controls.Add(btn)
num+=1
Next
EndSub
PrivateSub暂停ToolStripMenuItem1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles暂停ToolStripMenuItem1.Click
Timer1.Stop()
EndSub
PrivateSub退出ToolStripMenuItem1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles退出ToolStripMenuItem1.Click
Me.Close()
EndSub
PrivateSubbaffle_KeyPress(ByValsenderAsSystem.Object,ByValeAsSystem.Windows.Forms.KeyPressEventArgs)Handlesbaffle.KeyPress
Ife.KeyChar="a"Then
Ifbaffle.Left>0Then
Ifbrick.Top=baffle.Top-brick.HeightThen
brick.Left-=10
EndIf
baffle.Left-=10
EndIf
Ifbaffle.Left<=0Then
baffle.Left=0
EndIf
EndIf
Ife.KeyChar="d"Then
Ifbaffle.LeftIfbrick.Top=baffle.Top-brick.HeightThen
brick.Left+=10
EndIf
baffle.Left+=10
EndIf
If(baffle.Left+baffle.Width)>=Me.ClientSize.WidthThen
baffle.Left=Me.ClientSize.Width-baffle.Width
EndIf
EndIf
Ife.KeyChar="p"Then
Timer1.Enabled=False
EndIf
Ife.KeyChar=""Then
Timer1.Start()
EndIf
EndSub
PrivateSubgetbaowu(ByValbtnAsControl)
DimbaowuAsNewButton
IfInt32.Parse(btn.Name)Mod8=0Then
baowu.Name="r"
baowu.Text="R"
baowu.BackColor=Color.Red
baowu.Width=20
baowu.Height=20
baowu.Left=btn.Left+btn.Width/2-baowu.Width/2
baowu.Top=btn.Top+btn.Height
Me.Controls.Add(baowu)
ElseIfInt32.Parse(btn.Name)Mod7=0Then
baowu.Name="w"
baowu.Text="W"
baowu.BackColor=Color.Yellow
baowu.Width=20
baowu.Height=20
baowu.Left=btn.Left+btn.Width/2-baowu.Width/2
baowu.Top=btn.Top+btn.Height
Me.Controls.Add(baowu)
ElseIfInt32.Parse(btn.Name)Mod9=0Then
baowu.Name="q"
baowu.Text="Q"
baowu.BackColor=Color.Green
baowu.Width=20
baowu.Height=20
baowu.Left=btn.Left+btn.Width/2-baowu.Width/2
baowu.Top=btn.Top+btn.Height
Me.Controls.Add(baowu)
ElseIfInt32.Parse(btn.Name)Mod11=0Then