VB2010入门教程2:创建迷宫.doc_第1页
VB2010入门教程2:创建迷宫.doc_第2页
VB2010入门教程2:创建迷宫.doc_第3页
VB2010入门教程2:创建迷宫.doc_第4页
VB2010入门教程2:创建迷宫.doc_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

教程 2:创建迷宫Visual Studio 2010本教程中将构建一个迷宫游戏,在该游戏中,用户必须将鼠标指针从起点移动到终点,而不触碰到任何墙。您将学习如何: 使用Panel容器布局窗体。 使用Label控件构建迷宫。 编写代码以显示消息框。 为鼠标事件设置事件处理程序。 在程序中播放声音。 使用类组织代码。以下是迷宫的玩法:鼠标指针从迷宫的左上角开始移动。用户在迷宫中移动鼠标指针时,小心不要将鼠标指针触碰到任何墙。如果鼠标指针触碰到某面墙,它将自动跳回到起点。但如果鼠标指针到达迷宫结尾处的“完成”标签,则将打开“Congratulations”(祝贺)消息框,此时游戏结束。当您完成时,程序将类似下图所示。在本教程中创建的游戏说明在本教程中,同时涉及 Visual C# 和 Visual Basic,因此请关注特定于您使用的编程语言的信息。相关主题标题说明步骤 1:创建项目并向窗体添加面板通过创建项目并添加Panel容器开始操作。步骤 2:使用标签构建迷宫通过将多个Label控件添加到窗体中来构建迷宫。步骤 3:结束游戏通过使用“完成”标签来结束迷宫游戏。步骤 4:添加方法来重新启动游戏编写自己的方法以重新开始迷宫游戏。步骤 5:为每面墙添加一个 MouseEnter 事件处理程序添加事件处理程序,以便在鼠标指针触碰到墙时将指针发送回起点。步骤 6:添加 SoundPlayer开始向迷宫游戏中添加声音。步骤 7:向窗体中添加代码以播放声音调用每个SoundPlayers Play()方法以便在适当的时间播放声音。步骤 8:运行程序并尝试其他功能运行并测试程序。尝试其他功能,例如更改声音和颜色。 2016 Microsoft步骤 1:创建项目并向窗体添加面板Visual Studio 2010创建迷宫游戏的第一步是创建项目并向窗体添加Panel容器。创建项目并添加 Panel 容器1. 在“文件”菜单上,单击“新建项目”。2. 如果没有使用 Visual Studio 学习版,您需要先选择一种语言。从“安装的模板”列表中选择“C#”或“Visual Basic”。3. 单击“Windows 窗体应用程序”图标,然后键入“Maze”作为名称。4. 设置窗体属性:a. 使用指针拖动右下角来调整窗体的大小。观察集成开发环境 (IDE) 的右下角。状态栏中会显示窗体的大小。继续拖动直到窗体的宽度和高度均为 650 像素。可以构建一个更小或更大的迷宫,因此可使窗体具有所需的任意大小。状态栏中的大小b. 在窗体达到适当大小后,请将“Text”属性设置为“迷宫”。c. 若要使用户无法调整窗体的大小,请将“FormBorderStyle”属性设置为“Fixed3D”。d. 通过将“MaximizeBox”属性设置为“False”可以禁用窗体的标题栏中的“最大化”按钮。此时您已有一个具有固定大小的窗体,用户无法将该窗体最大化。说明在创建新窗体时,默认情况下会对窗体进行相应设置,使用户能够通过两种方式来调整窗体的大小:用户可以拖动窗体的边和角或单击“最大化”按钮来使窗体最大化。如果希望确保用户无法调整窗体的大小,请禁用这两个选项。将“FormBorderStyle”属性设置为任一固定样式可阻止用户调整窗体的大小,但用户仍可以单击“最大化”按钮。这就是同时需要禁用“MaximizeBox”属性的原因。接下来,您需要创建一个用于构建迷宫的游戏场。您可以使用Panel控件执行此操作。面板是一类容器控件,可让您对一组控件进行布局。与其他一些容器(如“TableLayoutPanel”容器和“FlowLayoutPanel”容器)不同,面板不会重新排列它所包含的控件。这样一来,您就可以自由地将控件放置在所需位置,但与 TableLayoutPanel 或 FlowLayoutPanel 不同的是,面板在用户调整窗口的大小时不会提供任何帮助。5. 转到工具箱中的“容器”组并双击“Panel”以将面板添加到窗体。选定面板后,面板的左上角应显示一个移动句柄图标,如下所示。移动句柄6. 拖动面板直到它接近于窗体左上角。在拖动面板时,您应注意 IDE 的一个有用功能:一旦面板与窗体的上边缘或左边缘之间达到某个特定距离,面板就会嵌入到位,并且面板边缘和窗体边缘之间会显示一条蓝色分隔线。可以利用此分隔线轻松对齐面板,使其各个边缘与窗体边缘之间的距离完全相同。一旦您看到顶部和左侧的蓝色分隔线,请释放鼠标按钮以将面板放置到位。蓝色分隔线如下所示。蓝色分隔线拖动右下角的拖动句柄,直到面板的右侧和底部嵌入到位。7. 由于您希望用户看到迷宫的边缘,因此您需要为迷宫提供一个可视边框。选择面板并将其“BorderStyle”属性设置为“Fixed3D”。8. 通过单击如下所示的“全部保存”工具栏按钮来保存项目。“全部保存”按钮9. 若要运行程序,请按 F5 或单击如下所示的“启动调试”工具栏按钮。启动“调试”工具栏按钮在运行时,窗体应与以下图片类似。初始迷宫窗体10. 在转到下一个教程步骤之前,请通过关闭窗体或单击“调试”工具栏上的“停止调试”工具栏按钮来停止程序。(在程序运行时,IDE 将保持处于只读模式中。)继续或查看 若要转到下一个教程步骤,请参见步骤 2:使用标签构建迷宫。 若要返回概述主题,请参见教程 2:创建迷宫。 2016 Microsoft步骤 2:使用标签构建迷宫Visual Studio 2010现在是开始构建迷宫的时候了。可以通过向窗体添加多个Label控件来构建迷宫。通常使用标签来显示文本。但在此项目中,将使用标签在窗体上绘制一个彩色矩形来作为迷宫的墙。使用标签构建迷宫1. 在 Windows 窗体设计器中,转到工具箱中的“公共控件”组,然后双击“Label”以使 IDE 向窗体添加标签。2. 设置几个属性,使标签成为一个大小可调整的矩形:o 将“AutoSize”属性设置为“False”。o 将“BackColor”属性设置为您喜欢的任何颜色。(对于此教程,从“Web”颜色选项卡中选择“RoyalBlue”。)o 更改“Text”属性,通过选择文本“label1”并将其删除来清空此属性。作为实心矩形的标签此时,您的Label控件应为一个实心矩形。说明这看起来似乎有些不正常,因为Label控件本来是应作为标签使用的。不过,在此情况下,此标签可以用作绘制块。编程的一个重要部分是了解工具箱(此示例中为 IDE 的工具箱)中的某个工具在什么情况下适用于特定作业,即使该作业不是此工具原本应用于的作业。3. 此时,您可以在构建迷宫时发挥您的创意。通过选择标签,并从“编辑”菜单中选择“复制”(或按 Ctrl+C)来复制标签。然后,将标签粘贴多次。从“编辑”菜单中选择“粘贴”(或按 Ctrl+V)。这将提供水平迷宫墙。选择其中的一面墙并拖动此墙,使其变得又高又窄。复制并粘贴此墙几次以提供垂直墙。4. 在面板周围拖动标签并创建迷宫。不要使通道过窄,否则您的游戏将很难玩。在左上角留出额外的空间,因为玩家将从该位置开始迷宫游戏。说明您应该还记得,在您调整窗体的大小时,窗体的大小会显示在 IDE 的状态栏中。当您调整标签或任何其他控件的大小时,IDE 会执行相同的操作。如果您愿意,您可以通过此操作来确保所有迷宫墙的宽度都相同。在定位迷宫墙时,用于定位面板的 IDE 对齐栏也会很有用。也可以使用键盘上的箭头键对当前选定的控件位置进行微调。下图显示了状态栏中的大小。5. 状态栏中的大小6. 7. 在对迷宫进行布局后,转到工具箱中的“公共控件”组,然后重新双击“Label”一次。使用“属性”窗口中的“(Name)”行将标签命名为“finishLabel”,并将其“Text”属性更改为“完成”。8. 将新的“完成”标签拖动到迷宫的终点。这是用户需触碰的目标。9. 保存项目,然后重新运行程序。以下是已完成的迷宫窗体的示例。(迷宫的外观将有所不同。)已完成的迷宫窗体继续或查看 若要转到下一个教程步骤,请参见步骤 3:结束游戏。 若要返回上一个教程步骤,请参见步骤 1:创建项目并向窗体添加面板。 2016 Microsoft步骤 3:结束游戏Visual Studio 2010若要结束游戏,请使用“完成”标签。可以通过为标签的 MouseEnter 事件添加事件处理程序来执行此操作。说明如果您已完成“教程 1:创建图片查看器”,则您应了解事件处理程序。大多数控件都具有它们可引发的多个不同事件。图片查看器使用了Button控件的 Click 事件和CheckBox控件的 CheckedChanged 事件。在本教程中,将使用Label控件的 MouseEnter 事件,每当鼠标指针进入该控件时都将引发此事件。Label控件具有四打以上的事件。其中的大多数事件都具有直观的名称,如“DoubleClick”、“Resize”和“TextChanged”。本教程后面会显示一个事件名称的列表。结束游戏1. 选择“finishLabel”控件,然后单击位于“属性”窗口顶部的呈闪电形状的“事件”图标。单击此图标后,将显示控件的事件,而不是显示控件的属性。可以通过单击“属性”图标返回到属性列表。此时,将“属性”窗口保持原状,以便其显示“finishLabel”控件的所有事件。向下滚动到 MouseEnter 事件。图标和 MouseEnter 事件如下所示。“事件”图标“属性”图标MouseEnter 事件2. 双击“MouseEnter”一词。执行此操作后,IDE 会自动将一个事件处理程序方法添加到窗体中,并在代码编辑器中显示该方法,如下所示。C#private void finishLabel_MouseEnter(object sender, EventArgs e)每当鼠标指针进入此标签时,该事件处理程序方法都将运行。3. 您希望程序打开显示“Congratulations”(祝贺)的消息框,然后希望程序关闭。为此,您需要添加如下所示的代码行(带注释)。C#private void finishLabel_MouseEnter(object sender, EventArgs e) / Show a congratulatory MessageBox, then close the form. MessageBox.Show(Congratulations!); Close();说明您的finishLabel_MouseEnter()方法有两个语句。第一个语句将调用名为Show()的方法,此方法用于打开一个包含您在括号中放入的任何文本的消息框。4. 可以通过使用 IDE 浏览代码来了解有关所发生情况的更多信息。将鼠标指针置于“MessageBox”一词的上方。您应看到以下工具提示。工具提示说明IDE 指明有一个名为System.Windows.Forms.MessageBox的类,并且您调用的Show()方法位于此类中。无需完全理解即可正确使用消息框,但附加信息会很有用。对于第二个语句,每个窗体都有一个名为Close()的内置方法,此方法可促使窗体关闭。一些程序具有多个窗口,用户可以在这些窗口间进行切换。在使用此类程序时,它会关闭当前窗口,但程序的其余部分将保持运行。(例如,如果您同时打开了多个 Microsoft Office Word 文档,则关闭一个文档窗口会关闭相应文档,但 Office Word 仍保持打开状态。)不过,在只包含一个窗口的程序中,关闭该窗口会导致程序停止运行,因此关闭窗体即会关闭程序。5. 保存并运行程序。将鼠标指针移动到“完成”标签的上方。这将打开消息并关闭程序。继续或查看 若要转到下一个教程步骤,请参见步骤 4:添加方法来重新启动游戏。 若要返回上一个教程步骤,请参见步骤 2:使用标签构建迷宫。 2016 Microsoft步骤 4:添加方法来重新启动游戏Visual Studio 2010您已了解 IDE 是如何自动将事件处理程序方法添加到程序的。您还可以编写方法并将其添加到代码中。许多程序员花费大量的时间来添加他们自己的方法。说明如果有一组语句需要在不同的位置执行多次,则编写自己的方法会非常有用。这在编写程序时经常会发生。例如,在创建此迷宫程序时,您希望此程序在启动时会自动将鼠标指针重新定位到面板的左上角。当用户将指针移到墙上时,您希望此程序将指针重新定位到起始位置。当用户将指针移出游戏场并再次返回时,您希望此程序将指针再次重新定位到起始位置。可以使用三行代码将指针重新定位到起始点。不过,如果不必在程序中的多个不同位置编写这三行相同的代码,就能够节省时间了。如果将这三行代码放入某个方法(如名为MoveToStart()的方法)中,则只需编写这些代码一次。然后,无论您何时想要将指针移回到面板的左上角,只需调用MoveToStart()方法即可。添加方法来重新启动游戏1. 通过右击“解决方案资源管理器”中的“Form1.cs”,并从菜单中选择“查看代码”,转到窗体的代码。2. 您应该会看到已添加的finishLabel_MouseEnter()方法。就在此方法的下面,添加一个新的MoveToStart()方法。C#private void MoveToStart() Point startingPoint = panel1.Location; startingPoint.Offset(10, 10); Cursor.Position = PointToScreen(startingPoint);3. 有一种特殊类型的注释,您可以将它添加到任何方法的上面,而且 IDE 会帮助您添加它。将光标放在新方法上面的行中。在 Visual C# 中,添加三个左斜线 (/)。在 Visual Basic 中,添加三个单引号 ()。IDE 会自动填充以下文本。C#/ / / private void MoveToStart() Point startingPoint = panel1.Location; startingPoint.Offset(10, 10); Cursor.Position = PointToScreen(startingPoint);4. 在两个摘要标记之间的行上,填充以下注释。(按 Enter 之后,IDE 会根据编程语言自动添加带三个左斜线 (/) 或带三个单引号 () 的新行,以便您可以继续注释。)C#/ / Move the pointer to a point 10 pixels down and to the right/ of the starting point in the upper-left corner of the maze./ 说明您刚刚添加了 XML 注释。也许您还记得,当您将鼠标悬停在单词“MessageBox”上方时,IDE 在工具提示中显示了信息。IDE 会自动填充有关方法的工具提示。您放入 XML 注释中的所有内容都将出现在 IDE 的工具提示中,以及“IntelliSense”窗口中。一个程序若能包含多种方法会挺有用的。此外,如果在面板左上角的下方和右侧各 10 像素的位置放置一面墙,则可以在代码中改为 (10, 10)。尝试不同的数字,直至找到适用于迷宫的指针起始点。5. 添加方法之后,需要调用它。由于您希望程序能够在启动后立即将指针移到起始点,因此应在窗体启动后立即调用该方法。对于 Visual C#,在窗体的代码中查找以下方法。C#public Form1() InitializeComponent();对于 Visual Basic,在窗体的代码中添加该方法。在finishLabel_MouseEnter方法前面,开始键入以下代码。VBPublic Sub New()当您按 Enter 键移动到下一行时,IntelliSense 应显示下面的代码来完成该方法。VBPublic Sub New() This call is required by Windows Forms Designer. InitializeComponent() Add any initialization after the InitializeComponent() call.End Sub这是一种称为构造函数的特殊方法。当创建窗体时,会执行一次该方法。现在,该方法要执行的所有操作是调用一个名为InitializeComponent()的方法。将在该方法中添加一行代码,以便调用刚才编写的新MoveToStart()方法。在继续操作之前,请考虑若要使程序能够在调用InitializeComponent()方法之后立即调用MoveToStart()方法,需要在程序中添加哪些代码。说明窗体构造函数中的InitializeComponent()方法是 IDE 编写的方法。此方法将向窗体中添加所有控件和组件,并设置它们的属性。每当您更改窗体或其控件的任意属性时,IDE 都会相应地修改此方法。通过从“解决方案资源管理器”中打开文件 Form1.Designer.cs,可以查看此方法。您不需要编辑InitializeComponent()方法的内容。而 IDE 会基于您在“设计”视图中创建的窗体负责执行此操作。6. 紧接在对InitializeComponent()方法的调用之后添加对MoveToStart()方法的调用。窗体代码应如以下所示。C#namespace Maze public partial class Form1 : Form public Form1() InitializeComponent(); MoveToStart(); private void finishLabel_MouseEnter(object sender, EventArgs e) / Show a congratulatory MessageBox, then close the form. MessageBox.Show(Congratulations!); Close(); / / Move the pointer to a point 10 pixels down and to the right / of the starting point in the upper-left corner of the maze. / private void MoveToStart() Point startingPoint = panel1.Location; startingPoint.Offset(10, 10); Cursor.Position = PointToScreen(startingPoint); 请注意InitializeComponent()下面的对MoveToStart()方法的调用。如果使用 Visual C# 进行编程,请记得在此行结尾加上分号 (;),否则程序将不会生成。7. 现在即可保存并运行程序。程序启动后,指针应自动重新定位到面板左上角的右侧稍微偏下的位置。继续或查看 若要转到下一个教程步骤,请参见步骤 5:为每面墙添加一个 MouseEnter 事件处理程序。 若要返回上一个教程步骤,请参见步骤 3:结束游戏。 2016 Microsoft步骤 5:为每面墙添加一个 MouseEnter 事件处理程序Visual Studio 2010如果每当用户的鼠标指针接触到墙时都将该指针发送回起点,则将使迷宫游戏更加有趣并更具挑战性。在您进一步阅读之前,请先考虑如何做到这一点。为每面墙添加一个 MouseEnter 事件处理程序1. 转到 Windows 窗体设计器,然后单击任一新添加的墙。2. 转到“属性”窗口,然后单击“事件”图标以显示此墙的事件。向下滚动到 MouseEnter 事件。键入文本 wall_MouseEnter,然后按 Enter,而不是双击该事件。“事件”图标和“属性”窗口如下所示。“事件”图标显示 MouseEnter 事件的“属性”窗口说明如果您将事件名称直接键入“属性”窗口中的事件表时,则指示 IDE 创建一个具有该名称的事件处理程序并将其连接到控件的事件。您通常希望 IDE 选择事件名称,这是因为这些名称具有逻辑性,并且使用它们可使其他人能够更轻松地阅读并理解您的代码。当 IDE 为事件处理程序选择名称时,它会使用控件的名称和事件的名称。在此情况下,您不会更改墙的默认名称,这些默认名称为“label4”、“label18”、“label25”等。因此,如果单击名为“label12”的墙,则 IDE 会将事件处理程序命名为“label12_MouseEnter”。通过键入名称“wall_MouseEnter”,您将可以选择更适用的名称。这在为多个控件使用一个事件处理程序(本教程的后面将会遇到这种情况)时尤为重要。3. 按下 Enter 后,IDE 将为您添加一个新的事件处理程序,并会将其连接到此墙的 MouseEnter 事件。新添加的代码应在您的代码编辑器中出现,如下所示。在 Visual Basic 中,特定标签可能不是代码中显示的 Label8。C#private void wall_MouseEnter(object sender, EventArgs e)4. 接下来,添加一个对MoveToStart()方法的调用和一个说明该方法的注释。首先转到您的方法并添加语句MoveToStart()。“IntelliSense”窗口将打开,并显示以下内容。“IntelliSense”窗口当您添加MoveToStart()方法时,IDE 会将此方法添加到“IntelliSense”窗口中。您添加的 XML 注释将显示在工具提示中。这在使用大量方法编写程序时很有用。5. 按 Tab 以指示 IntelliSense 完成方法名称。如果您编写的是 Visual C# 代码,请记住在该语句的结尾添加分号 (;)。然后在该语句的上方添加一个注释。您的代码应类似以下内容。在 Visual Basic 中,特定标签可能不是代码中显示的 Label8。C#private void wall_MouseEnter(object sender, EventArgs e) / When the mouse pointer hits a wall or enters the panel, / call the MoveToStart() method. MoveToStart();6. 保存并运行程序。将鼠标指针移动到已将事件处理程序连接到的墙的上方。(如果您不记得选择了哪一面墙,请将鼠标指针移动到每面墙的上方直到您找到正确的墙。)一旦鼠标指针接触该墙,它应会将鼠标指针发送回起点。接下来,您需要对其余的墙进行相同操作。可以为每面墙编写相同的 MouseEnter 事件处理程序。但此过程会很长,这将会在程序中生成多个相同的代码行并且难以做出更改。IDE 提供了一种用于将同一事件处理程序连接到所有墙的更简单的方法。7. 转到 Windows 窗体设计器,然后在“编辑”菜单中单击“全选”。8. 按住 Ctrl 键并单击“完成”标签以清除所选内容。这将使所有墙和该面板处于选定状态。9. 此时转到“属性”窗口上的事件表。向下滚动到 MouseEnter 事件并单击该事件旁边的编辑框。这将显示一个下拉箭头。如果单击此箭头,则会显示一个程序中所有事件处理程序的列表,可以为该事件选择这些事件处理程序。在此情况下,将显示您先前添加的 finishLabel_MouseEnter 事件处理程序和您刚编写的 wall_MouseEnter 事件处理程序,如下图所示。包含事件处理程序的 MouseEnter 事件10. 选择“wall_MouseEnter”。(如果选择了错误的事件处理程序或意外地添加了一个新的事件处理程序,则可以再次选择所有的墙和该面板,然后再选择正确的方法。)11. 此时,您的迷宫游戏应变得更加有趣了。尝试保存此游戏,然后再运行它。如果指针碰到墙,或者您先将指针移出迷宫,然后将其移回迷宫,则该程序会自动将指针重新定位到迷宫的起点。继续或查看 若要转到下一个教程步骤,请参见步骤 6:添加 SoundPlayer。 若要返回上一个教程步骤,请参见步骤 4:添加方法来重新启动游戏。 2016 Microsoft步骤 6:添加 SoundPlayerVisual Studio 2010接下来,将向迷宫游戏中添加一些声音。当用户的鼠标指针触碰到墙并且被发送回起点时将播放一个声音,并且当用户获胜时将播放一个不同的声音。在此步骤中,您将添加一个声音,当鼠标指针触碰到墙时将播放此声音。虽然此操作看起来比较复杂,但只需几行代码即可完成。添加用于播放噪音的 SoundPlayer1. 首先将一个 SoundPlayer 添加到窗体的代码中(刚好位于构造函数的上方)。C#public partial class Form1 : Form / This SoundPlayer plays a sound whenever the player hits a wall. System.Media.SoundPlayer startSoundPlayer = new System.Media.SoundPlayer(C:WindowsMediachord.wav); public Form1() InitializeComponent(); MoveToStart(); 说明第一行 (public partial class Form1 : Form) 之前已出现多次。这一点非常重要,因为它包含 class 关键字。class 关键字将出现多次,这是因为类是任何程序的基本构建块。2. 您曾将鼠标指针置于语句MessageBox.Show(Congratulations!);中的 MessageBox 一词的上方,以使 IDE 打开工具提示。此时请再次执行此操作,不过请仔细查看如下所示的第一行。工具提示说明class 关键字显示在第一行中。由于您的代码按如下方式组织到类中,因此 class 关键字会频繁出现:程序包含类,每个类都包含方法,而每个方法都包含语句。有许多内置类,例如MessageBox。MessageBox类具有一个称作Show()的方法,当调用此类时,它将执行可打开消息框的语句。您还使用了Button、Label和Panel类。在设置这些类的属性时,使用了这些类的另一个方面:一个类可以具有属性和方法,设置这些属性会导致此类执行更改行为的语句。您可能会注意到,SoundPlayer是一个播放声音的类。在使用new关健字创建 SoundPlayer 时,它会从文件中加载一个声音,可以使用其Play()方法来播放此声音。当玩家开始新的游戏时或当玩家的鼠标指针触碰到墙而致使其必须重新开始游戏时,您将使用此 SoundPlayer 来播放 Windows 和弦音。(这就是将其称作 startSoundPlayer 的原因。)3. 若要使用不同的声音,请将新语句中双引号间的路径 (C:WindowsMediachord.wav) 替换为要使用的声音文件的路径。在 Windows 窗体设计器中构建窗体时,使用 IDE 可帮助您创建您自己的类,此示例中的类称作Form1。在将此代码行添加到构造函数上方后,像之前添加按钮或标签那样将新的 SoundPlayer 添加到窗体中。该语句位于方法的外部,以便能够通过多种方法访问 SoundPlayer。这就是您必须将新语句置于窗体代码内部(但在其方法的外部)的原因。按照命名作为Label控件之一的 finishLabel 的方式命名 startSoundPlayer。在添加语句以创建新的 SoundPlayer 并将其命名为 startSoundPlayer 后,此 SoundPlayer 会像标签、按钮和其他控件一样出现在“IntelliSense”窗口中。此操作可能看起来比较复杂,但它与您之前在 IDE 中执行的操作类似。例如,在使用 IDE 的工具箱向窗体添加按钮或标签时,IDE 会自动添加用于创建新按钮或新标签的代码行。此时您执行的操作与上述操作相同,只不过您创建的是 SoundPlayer。(在下一个教程步骤中将创建第二个 SoundPlayer。)继续或查看 若要转到下一个教程步骤,请参见步骤 7:向窗体中添加代码以播放声音。 若要返回上一个教程步骤,请参见步骤 5:为每面墙添加一个 MouseEnter 事件处理程序。 2016 Microsoft步骤 7:向窗体中添加代码以播放声音Visual Studio 2010现在,您可以准备添加第二个 SoundPlayer,然后添加方法来调用每个 SoundPlayer。播放声音1. 首先添加第二个 SoundPlayer 来播放 Windows Tada 声音。当玩家到达“完成”标签时,游戏将播放此声音。C#public partial class Form1 : Form / This SoundPlayer plays a sound whenever the player hits a wall. System.Media.SoundPlayer startSoundPlayer = new System.Media.SoundPlayer(C:WindowsMediachord.wav); / This SoundPlayer plays a sound when the player finishes the game. System.Media.SoundPlayer finishSoundPlayer = new System.Media.SoundPlayer(C:WindowsMediatada.wav); public Form1() InitializeComponent(); MoveToStart(); 2. 此时两个 SoundPlayer 都已添加到您的窗体中。添加Play()方法来调用 SoundPlayer,以便在适当的时候播放声音。希望在用户碰墙时播放一种声音。因此,请将语句startSoundPlayer.Play();添加到MoveToStart()方法中。请记得更新注释。最终的方法将如下所示。C#/ / Play a sound, then move the mouse pointer to a point 10 pixels down and to / the right of the starting point in the upper-left corner of the

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论