VB入门教程2创建迷宫Word文档格式.docx
- 文档编号:22245094
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:27
- 大小:95.53KB
VB入门教程2创建迷宫Word文档格式.docx
《VB入门教程2创建迷宫Word文档格式.docx》由会员分享,可在线阅读,更多相关《VB入门教程2创建迷宫Word文档格式.docx(27页珍藏版)》请在冰豆网上搜索。
结束游戏
通过使用“完成”标签来结束迷宫游戏。
步骤4:
添加方法来重新启动游戏
编写自己的方法以重新开始迷宫游戏。
步骤5:
为每面墙添加一个MouseEnter事件处理程序
添加事件处理程序,以便在鼠标指针触碰到墙时将指针发送回起点。
步骤6:
添加SoundPlayer
开始向迷宫游戏中添加声音。
步骤7:
向窗体中添加代码以播放声音
调用每个
SoundPlayer'
sPlay()
方法以便在适当的时间播放声音。
步骤8:
运行程序并尝试其他功能
运行并测试程序。
尝试其他功能,例如更改声音和颜色。
©
2016Microsoft
创建迷宫游戏的第一步是创建项目并向窗体添加
容器。
创建项目并添加Panel容器
1.在“文件”菜单上,单击“新建项目”。
2.如果没有使用VisualStudio学习版,您需要先选择一种语言。
从“安装的模板”列表中选择“C#”或“VisualBasic”。
3.单击“Windows窗体应用程序”图标,然后键入“Maze”作为名称。
4.设置窗体属性:
a.使用指针拖动右下角来调整窗体的大小。
观察集成开发环境(IDE)的右下角。
状态栏中会显示窗体的大小。
继续拖动直到窗体的宽度和高度均为650像素。
可以构建一个更小或更大的迷宫,因此可使窗体具有所需的任意大小。
状态栏中的大小
b.在窗体达到适当大小后,请将“Text”属性设置为“迷宫”。
c.若要使用户无法调整窗体的大小,请将“FormBorderStyle”属性设置为“Fixed3D”。
d.通过将“MaximizeBox”属性设置为“False”可以禁用窗体的标题栏中的“最大化”按钮。
此时您已有一个具有固定大小的窗体,用户无法将该窗体最大化。
在创建新窗体时,默认情况下会对窗体进行相应设置,使用户能够通过两种方式来调整窗体的大小:
用户可以拖动窗体的边和角或单击“最大化”按钮来使窗体最大化。
如果希望确保用户无法调整窗体的大小,请禁用这两个选项。
将“FormBorderStyle”属性设置为任一固定样式可阻止用户调整窗体的大小,但用户仍可以单击“最大化”按钮。
这就是同时需要禁用“MaximizeBox”属性的原因。
接下来,您需要创建一个用于构建迷宫的游戏场。
您可以使用
控件执行此操作。
面板是一类容器控件,可让您对一组控件进行布局。
与其他一些容器(如“TableLayoutPanel”容器和“FlowLayoutPanel”容器)不同,面板不会重新排列它所包含的控件。
这样一来,您就可以自由地将控件放置在所需位置,但与TableLayoutPanel或FlowLayoutPanel不同的是,面板在用户调整窗口的大小时不会提供任何帮助。
5.转到工具箱中的“容器”组并双击“Panel”以将面板添加到窗体。
选定面板后,面板的左上角应显示一个移动句柄图标,如下所示。
移动句柄
6.拖动面板直到它接近于窗体左上角。
在拖动面板时,您应注意IDE的一个有用功能:
一旦面板与窗体的上边缘或左边缘之间达到某个特定距离,面板就会嵌入到位,并且面板边缘和窗体边缘之间会显示一条蓝色分隔线。
可以利用此分隔线轻松对齐面板,使其各个边缘与窗体边缘之间的距离完全相同。
一旦您看到顶部和左侧的蓝色分隔线,请释放鼠标按钮以将面板放置到位。
蓝色分隔线如下所示。
蓝色分隔线
拖动右下角的拖动句柄,直到面板的右侧和底部嵌入到位。
7.由于您希望用户看到迷宫的边缘,因此您需要为迷宫提供一个可视边框。
选择面板并将其“BorderStyle”属性设置为“Fixed3D”。
8.通过单击如下所示的“全部保存”工具栏按钮来保存项目。
“全部保存”按钮
9.若要运行程序,请按F5或单击如下所示的“启动调试”工具栏按钮。
启动“调试”工具栏按钮
在运行时,窗体应与以下图片类似。
初始迷宫窗体
10.在转到下一个教程步骤之前,请通过关闭窗体或单击“调试”工具栏上的“停止调试”工具栏按钮来停止程序。
(在程序运行时,IDE将保持处于只读模式中。
)
继续或查看
∙若要转到下一个教程步骤,请参见步骤2:
使用标签构建迷宫。
∙若要返回概述主题,请参见教程2:
创建迷宫。
现在是开始构建迷宫的时候了。
可以通过向窗体添加多个
控件来构建迷宫。
通常使用标签来显示文本。
但在此项目中,将使用标签在窗体上绘制一个彩色矩形来作为迷宫的墙。
1.在Windows窗体设计器中,转到工具箱中的“公共控件”组,然后双击“Label”以使IDE向窗体添加标签。
2.设置几个属性,使标签成为一个大小可调整的矩形:
o将“AutoSize”属性设置为“False”。
o将“BackColor”属性设置为您喜欢的任何颜色。
(对于此教程,从“Web”颜色选项卡中选择“RoyalBlue”。
o更改“Text”属性,通过选择文本“label1”并将其删除来清空此属性。
作为实心矩形的标签
此时,您的
控件应为一个实心矩形。
这看起来似乎有些不正常,因为
控件本来是应作为标签使用的。
不过,在此情况下,此标签可以用作绘制块。
编程的一个重要部分是了解工具箱(此示例中为IDE的工具箱)中的某个工具在什么情况下适用于特定作业,即使该作业不是此工具原本应用于的作业。
3.此时,您可以在构建迷宫时发挥您的创意。
通过选择标签,并从“编辑”菜单中选择“复制”(或按Ctrl+C)来复制标签。
然后,将标签粘贴多次。
从“编辑”菜单中选择“粘贴”(或按Ctrl+V)。
这将提供水平迷宫墙。
选择其中的一面墙并拖动此墙,使其变得又高又窄。
复制并粘贴此墙几次以提供垂直墙。
4.在面板周围拖动标签并创建迷宫。
不要使通道过窄,否则您的游戏将很难玩。
在左上角留出额外的空间,因为玩家将从该位置开始迷宫游戏。
您应该还记得,在您调整窗体的大小时,窗体的大小会显示在IDE的状态栏中。
当您调整标签或任何其他控件的大小时,IDE会执行相同的操作。
如果您愿意,您可以通过此操作来确保所有迷宫墙的宽度都相同。
在定位迷宫墙时,用于定位面板的IDE对齐栏也会很有用。
也可以使用键盘上的箭头键对当前选定的控件位置进行微调。
下图显示了状态栏中的大小。
5.状态栏中的大小
6.
7.在对迷宫进行布局后,转到工具箱中的“公共控件”组,然后重新双击“Label”一次。
使用“属性”窗口中的“(Name)”行将标签命名为“finishLabel”,并将其“Text”属性更改为“完成”。
8.将新的“完成”标签拖动到迷宫的终点。
这是用户需触碰的目标。
9.保存项目,然后重新运行程序。
以下是已完成的迷宫窗体的示例。
(迷宫的外观将有所不同。
已完成的迷宫窗体
∙若要转到下一个教程步骤,请参见步骤3:
结束游戏。
∙若要返回上一个教程步骤,请参见步骤1:
创建项目并向窗体添加面板。
若要结束游戏,请使用“完成”标签。
可以通过为标签的MouseEnter事件添加事件处理程序来执行此操作。
如果您已完成“教程1:
创建图片查看器”,则您应了解事件处理程序。
大多数控件都具有它们可引发的多个不同事件。
图片查看器使用了
Button
控件的Click事件和
CheckBox
控件的CheckedChanged事件。
在本教程中,将使用
控件的MouseEnter事件,每当鼠标指针进入该控件时都将引发此事件。
控件具有四打以上的事件。
其中的大多数事件都具有直观的名称,如“DoubleClick”、“Resize”和“TextChanged”。
本教程后面会显示一个事件名称的列表。
1.选择“finishLabel”控件,然后单击位于“属性”窗口顶部的呈闪电形状的“事件”图标。
单击此图标后,将显示控件的事件,而不是显示控件的属性。
可以通过单击“属性”图标返回到属性列表。
此时,将“属性”窗口保持原状,以便其显示“finishLabel”控件的所有事件。
向下滚动到MouseEnter事件。
图标和MouseEnter事件如下所示。
“事件”图标
“属性”图标
MouseEnter事件
2.双击“MouseEnter”一词。
执行此操作后,IDE会自动将一个事件处理程序方法添加到窗体中,并在代码编辑器中显示该方法,如下所示。
C#
privatevoidfinishLabel_MouseEnter(objectsender,EventArgse)
{
}
每当鼠标指针进入此标签时,该事件处理程序方法都将运行。
3.您希望程序打开显示“Congratulations”(祝贺)的消息框,然后希望程序关闭。
为此,您需要添加如下所示的代码行(带注释)。
//ShowacongratulatoryMessageBox,thenclosetheform.
MessageBox.Show("
Congratulations!
"
);
Close();
您的
finishLabel_MouseEnter()
方法有两个语句。
第一个语句将调用名为
Show()
的方法,此方法用于打开一个包含您在括号中放入的任何文本的消息框。
4.可以通过使用IDE浏览代码来了解有关所发生情况的更多信息。
将鼠标指针置于“MessageBox”一词的上方。
您应看到以下工具提示。
工具提示
IDE指明有一个名为
System.Windows.Forms.MessageBox
的类,并且您调用的
方法位于此类中。
无需完全理解即可正确使用消息框,但附加信息会很有用。
对于第二个语句,每个窗体都有一个名为
Close()
的内置方法,此方法可促使窗体关闭。
一些程序具有多个窗口,用户可以在这些窗口间进行切换。
在使用此类程序时,它会关闭当前窗口,但程序的其余部分将保持运行。
(例如,如果您同时打开了多个MicrosoftOfficeWord文档,则关闭一个文档窗口会关闭相应文档,但OfficeWord仍保持打开状态。
)不过,在只包含一个窗口的程序中,关闭该窗口会导致程序停止运行,因此关闭窗体即会关闭程序。
5.保存并运行程序。
将鼠标指针移动到“完成”标签的上方。
这将打开消息并关闭程序。
∙若要转到下一个教程步骤,请参见步骤4:
添加方法来重新启动游戏。
∙若要返回上一个教程步骤,请参见步骤2:
您已了解IDE是如何自动将事件处理程序方法添加到程序的。
您还可以编写方法并将其添加到代码中。
许多程序员花费大量的时间来添加他们自己的方法。
如果有一组语句需要在不同的位置执行多次,则编写自己的方法会非常有用。
这在编写程序时经常会发生。
例如,在创建此迷宫程序时,您希望此程序在启动时会自动将鼠标指针重新定位到面板的左上角。
当用户将指针移到墙上时,您希望此程序将指针重新定位到起始位置。
当用户将指针移出游戏场并再次返回时,您希望此程序将指针再次重新定位到起始位置。
可以使用三行代码将指针重新定位到起始点。
不过,如果不必在程序中的多个不同位置编写这三行相同的代码,就能够节省时间了。
如果将这三行代码放入某个方法(如名为
MoveToStart()
的方法)中,则只需编写这些代码一次。
然后,无论您何时想要将指针移回到面板的左上角,只需调用
方法即可。
1.通过右击“解决方案资源管理器”中的“Form1.cs”,并从菜单中选择“查看代码”,转到窗体的代码。
2.您应该会看到已添加的
方法。
就在此方法的下面,添加一个新的
privatevoidMoveToStart()
PointstartingPoint=panel1.Location;
startingPoint.Offset(10,10);
Cursor.Position=PointToScreen(startingPoint);
3.有一种特殊类型的注释,您可以将它添加到任何方法的上面,而且IDE会帮助您添加它。
将光标放在新方法上面的行中。
在VisualC#中,添加三个左斜线(///)。
在VisualBasic中,添加三个单引号('
'
)。
IDE会自动填充以下文本。
///<
summary>
///
/summary>
4.在两个摘要标记之间的行上,填充以下注释。
(按Enter之后,IDE会根据编程语言自动添加带三个左斜线(///)或带三个单引号('
)的新行,以便您可以继续注释。
///Movethepointertoapoint10pixelsdownandtotheright
///ofthestartingpointintheupper-leftcornerofthemaze.
您刚刚添加了XML注释。
也许您还记得,当您将鼠标悬停在单词“MessageBox”上方时,IDE在工具提示中显示了信息。
IDE会自动填充有关方法的工具提示。
您放入XML注释中的所有内容都将出现在IDE的工具提示中,以及“IntelliSense”窗口中。
一个程序若能包含多种方法会挺有用的。
此外,如果在面板左上角的下方和右侧各10像素的位置放置一面墙,则可以在代码中改为(10,10)。
尝试不同的数字,直至找到适用于迷宫的指针起始点。
5.添加方法之后,需要调用它。
由于您希望程序能够在启动后立即将指针移到起始点,因此应在窗体启动后立即调用该方法。
对于VisualC#,在窗体的代码中查找以下方法。
publicForm1()
InitializeComponent();
对于VisualBasic,在窗体的代码中添加该方法。
在
finishLabel_MouseEnter
方法前面,开始键入以下代码。
VB
PublicSubNew()
当您按Enter键移动到下一行时,IntelliSense应显示下面的代码来完成该方法。
'
ThiscallisrequiredbyWindowsFormsDesigner.
InitializeComponent()
AddanyinitializationaftertheInitializeComponent()call.
EndSub
这是一种称为构造函数的特殊方法。
当创建窗体时,会执行一次该方法。
现在,该方法要执行的所有操作是调用一个名为
InitializeComponent()
的方法。
将在该方法中添加一行代码,以便调用刚才编写的新MoveToStart()
在继续操作之前,请考虑若要使程序能够在调用
方法之后立即调用
方法,需要在程序中添加哪些代码。
窗体构造函数中的
方法是IDE编写的方法。
此方法将向窗体中添加所有控件和组件,并设置它们的属性。
每当您更改窗体或其控件的任意属性时,IDE都会相应地修改此方法。
通过从“解决方案资源管理器”中打开文件Form1.Designer.cs,可以查看此方法。
您不需要编辑
方法的内容。
而IDE会基于您在“设计”视图中创建的窗体负责执行此操作。
6.紧接在对
方法的调用之后添加对
方法的调用。
窗体代码应如以下所示。
namespaceMaze
publicpartialclassForm1:
Form
{
publicForm1()
MoveToStart();
}
privatevoidfinishLabel_MouseEnter(objectsender,EventArgse)
///<
///Movethepointertoapoint10pixelsdownandtotheright
///ofthestartingpointintheupper-leftcornerofthemaze.
privatevoidMoveToStart()
请注意
下面的对
如果使用VisualC#进行编程,请记得在此行结尾加上分号(;
),否则程序将不会生成。
7.现在即可保存并运行程序。
程序启动后,指针应自动重新定位到面板左上角的右侧稍微偏下的位置。
∙若要转到下一个教程步骤,请参见步骤5:
为每面墙添加一个MouseEnter事件处理程序。
∙若要返回上一个教程步骤,请参见步骤3:
如果每当用户的鼠标指针接触到墙时都将该指针发送回起点,则将使迷宫游戏更加有趣并更具挑战性。
在您进一步阅读之前,请先考虑如何做到这一点。
1.转到Windows窗体设计器,然后单击任一新添加的墙。
2.转到“属性”窗口,然后单击“事件”图标以显示此墙的事件。
键入文本wall_MouseEnter,然后按Enter,而不是双击该事件。
“事件”图标和“属性”窗口如下所示。
显示MouseEnter事件的“属性”窗口
如果您将事件名称直接键入“属性”窗口中的事件表时,则指示IDE创建一个具有该名称的事件处理程序并将其连接到控件的事件。
您通常希望IDE选择事件名称,这是因为这些名称具有逻辑性,并且使用它们可使其他人能够更轻松地阅读并理解您的代码。
当IDE为事件处理程序选择名称时,它会使用控件的名称和事件的名称。
在此情况下,您不会更改墙的默认名称,这些默认名称为“label4”、“label18”、“label25”等。
因此,如果单击名为“label12”的墙,则IDE会将事件处理程序命名为“label12_MouseEnter”。
通过键入名称“wall_MouseEnter”,您将可以选择更适用的名称。
这在为多个控件使用一个事件处理程序(本教程的后面将会遇到这种情况)时尤为重要。
3.按下Enter后,IDE将为您添加一个新的事件处理程序,并会将其连接到此墙的MouseEnter事件。
新添加的代码应在您的代码编辑器中出现,如下所示。
在VisualBasic中,特定标签可能不是代码中显示的Label8。
privatevoidwall_MouseEnter(objectsender,EventArgse)
4.接下来,添加一个对
方法的调用和一个说明该方法的注释。
首先转到您的方法并添加语句
MoveToStart()。
“IntelliSense”窗口将打开,并显示以下内容。
“IntelliSense”窗口
当您添加
方法时,IDE会将此方法添加到“Int
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB 入门教程 创建 迷宫