Compartilhar via


Etapa 7: Adicionar código ao seu formulário para tocar sons

Agora você está pronto para adicionar um segundo SoundPlayer e, em seguida, adicione um método para chamar cada SoundPlayer.

link para vídeoPara obter uma versão de vídeo deste tópico, consulte Tutorial 2: criar um Labirinto no Visual Basic - 5 vídeo ou Tutorial 2: criar um Labirinto no C# - vídeo 5.

Para reproduzir sons

  1. Comece adicionando um segundo SoundPlayer para reproduzir o som a Tada do Windows.O jogo será reproduzido esse som quando o player atinge o Concluir rótulo.

    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. Agora, ambos os SoundPlayers são adicionados ao formulário.Adicionar um Play() método para chamar o SoundPlayer para reproduzir o som no momento adequado.Você deseja que um som para tocar quando o usuário pressiona uma parede.Portanto, adicione a instrução startSoundPlayer.Play(); para seu MoveToStart() método.Lembre-se de atualizar o comentário.O método final é semelhante ao seguinte.

    ''' <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. Adicione a instrução finishSoundPlayer.Play(); para o Concluir manipulador de eventos MouseEnter rótulo.Lembre-se atualizar o comentário, porque você está alterando o código, da seguinte maneira.

    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();
    }
    

Para continuar ou revisar