接下来,将向迷宫游戏中添加一些声音。当用户的鼠标指针触碰到墙并且被发送回起点时将播放一个声音,并且当用户获胜时将播放一个不同的声音。在此步骤中,您将添加一个声音,当鼠标指针触碰到墙时将播放此声音。虽然此操作看起来比较复杂,但只需几行代码即可完成。
添加用于播放噪音的 SoundPlayer
首先将一个 SoundPlayer 添加到窗体的代码中(刚好位于构造函数的上方)。
Public Class Form1 ' This SoundPlayer plays a sound whenever the player hits a wall. Dim startSoundPlayer = New System.Media.SoundPlayer("C:\Windows\Media\chord.wav") Public Sub New() ' This call is required by Windows Forms Designer. InitializeComponent() ' Add any initialization after the InitializeComponent() call. MoveToStart() End Sub
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:\Windows\Media\chord.wav"); public Form1() { InitializeComponent(); MoveToStart(); }
说明
第一行 (public partial class Form1 : Form) 之前已出现多次。这一点非常重要,因为它包含 class 关键字。class 关键字将出现多次,这是因为类是任何程序的基本构建块。
您曾将鼠标指针置于语句 MessageBox.Show("Congratulations!"); 中的 MessageBox 一词的上方,以使 IDE 打开工具提示。此时请再次执行此操作,不过请仔细查看如下所示的第一行。
工具提示
说明
class 关键字显示在第一行中。由于您的代码按如下方式组织到类中,因此 class 关键字会频繁出现:程序包含类,每个类都包含方法,而每个方法都包含语句。有许多内置类,例如 MessageBox。MessageBox 类具有一个称作 Show() 的方法,当调用此类时,它将执行可打开消息框的语句。您还使用了 Button、Label 和 Panel 类。在设置这些类的属性时,使用了这些类的另一个方面:一个类可以具有属性和方法,设置这些属性会导致此类执行更改行为的语句。
您可能会注意到,SoundPlayer 是一个播放声音的类。在使用 new 关健字创建 SoundPlayer 时,它会从文件中加载一个声音,可以使用其 Play() 方法来播放此声音。当玩家开始新的游戏时或当玩家的鼠标指针触碰到墙而致使其必须重新开始游戏时,您将使用此 SoundPlayer 来播放 Windows 和弦音。(这就是将其称作 startSoundPlayer 的原因。)
若要使用不同的声音,请将新语句中双引号间的路径 (C:\Windows\Media\chord.wav) 替换为要使用的声音文件的路径。
在 Windows 窗体设计器中构建窗体时,使用 IDE 可帮助您创建您自己的类,此示例中的类称作 Form1。在将此代码行添加到构造函数上方后,像之前添加按钮或标签那样将新的 SoundPlayer 添加到窗体中。该语句位于方法的外部,以便能够通过多种方法访问 SoundPlayer。这就是您必须将新语句置于窗体代码内部(但在其方法的外部)的原因。按照命名作为 Label 控件之一的 finishLabel 的方式命名 startSoundPlayer。
在添加语句以创建新的 SoundPlayer 并将其命名为 startSoundPlayer 后,此 SoundPlayer 会像标签、按钮和其他控件一样出现在**“IntelliSense”**窗口中。
此操作可能看起来比较复杂,但它与您之前在 IDE 中执行的操作类似。例如,在使用 IDE 的工具箱向窗体添加按钮或标签时,IDE 会自动添加用于创建新按钮或新标签的代码行。此时您执行的操作与上述操作相同,只不过您创建的是 SoundPlayer。(在下一个教程步骤中将创建第二个 SoundPlayer。)
继续或查看
若要转到下一个教程步骤,请参见步骤 7:向窗体中添加代码以播放声音。
若要返回上一个教程步骤,请参见步骤 5:为每面墙添加一个 MouseEnter 事件处理程序。