次の方法で共有


手順 7: サウンドを再生するコードのフォームへの追加

2 つ目の SoundPlayer を追加し、それぞれの SoundPlayer を呼び出すメソッドを追加する準備ができました。

ビデオへのリンクこのトピックのビデオ版については " " を参照してください。

サウンドを再生するには

  1. まず、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();
        }
    
  2. これで、両方の 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);
    }
    
  3. 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();
    }
    

続行または確認するには