手順 7: サウンドを再生するコードのフォームへの追加
2 つ目の SoundPlayer を追加し、それぞれの SoundPlayer を呼び出すメソッドを追加する準備ができました。
このトピックのビデオ版については " " を参照してください。
サウンドを再生するには
まず、Windows の Tada サウンドを再生するための 2 つ目の SoundPlayer を追加します。このサウンドは、プレーヤーが Finish ラベルに到達したときに再生されるようにします。
Public Class Form1 ' This SoundPlayer plays a sound whenever the player hits a wall. Private startSoundPlayer = New System.Media.SoundPlayer("C:\Windows\Media\chord.wav") ' This SoundPlayer plays a sound when the player finishes the game. Private finishSoundPlayer = New System.Media.SoundPlayer("C:\Windows\Media\tada.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"); // This SoundPlayer plays a sound when the player finishes the game. System.Media.SoundPlayer finishSoundPlayer = new System.Media.SoundPlayer(@"C:\Windows\Media\tada.wav"); public Form1() { InitializeComponent(); MoveToStart(); }
これで、両方の SoundPlayer がフォームに追加されました。適切なタイミングで SoundPlayer を呼び出してサウンドが再生されるように、Play() メソッドを追加します。ここでは、ユーザーが壁に触れたときにサウンドを再生します。そのため、startSoundPlayer.Play(); ステートメントを MoveToStart() メソッドに追加します。コメントも忘れずに更新してください。最終的なメソッドは次のようになります。
''' <summary> ''' 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 maze. ''' </summary> ''' <remarks></remarks> Private Sub MoveToStart() startSoundPlayer.Play() Dim startingPoint = Panel1.Location startingPoint.Offset(10, 10) Cursor.Position = PointToScreen(startingPoint) End Sub
/// <summary> /// 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 maze. /// </summary> private void MoveToStart() { startSoundPlayer.Play(); Point startingPoint = panel1.Location; startingPoint.Offset(10, 10); Cursor.Position = PointToScreen(startingPoint); }
finishSoundPlayer.Play(); ステートメントを Finish ラベルの MouseEnter イベント ハンドラーに追加します。コードを変更しているため、次のように、コメントも忘れずに更新してください。
Private Sub finishLabel_MouseEnter() Handles finishLabel.MouseEnter ' Play a sound, show a congratulatory MessageBox, then close the form. finishSoundPlayer.Play() MessageBox.Show("Congratulations!") Close() End Sub
private void finishLabel_MouseEnter(object sender, EventArgs e) { // Play a sound, show a congratulatory MessageBox, then close the form. finishSoundPlayer.Play(); MessageBox.Show("Congratulations!"); Close(); }
続行または確認するには
チュートリアルの次の手順に進むには、「手順 8: プログラムの実行とその他の機能の使用」を参照してください。
チュートリアルの前の手順に戻るには、「手順 6: SoundPlayer の追加」を参照してください。