Partager via


Étape 7 : ajouter du code à votre formulaire pour lire des sons

Vous êtes maintenant prêt à ajouter un deuxième SoundPlayer, puis une méthode pour appeler chacun d'eux.

lien vers la vidéoPour obtenir une version vidéo de cette rubrique, consultez Tutorial 2: Create a Maze in Visual Basic - Video 5 ou Tutorial 2: Create a Maze in C# - Video 5.

Pour lire des sons

  1. Commencez par ajouter un deuxième SoundPlayer pour lire le son Windows Tada.Votre jeu lira ce son lorsque le joueur atteindra le contrôle Label 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. Les deux SoundPlayers sont maintenant ajoutés à votre formulaire.Ajoutez une méthode Play() pour appeler le SoundPlayer et lire le son au moment approprié.Vous voulez qu'un son soit lu lorsque l'utilisateur touche un mur.Vous devez donc ajouter l'instruction startSoundPlayer.Play(); à votre méthode MoveToStart().N'oubliez pas de mettre à jour le commentaire.La dernière méthode se présente comme suit :

    ''' <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. Ajoutez l'instruction finishSoundPlayer.Play(); au gestionnaire d'événements MouseEnter du contrôle Label Finish.Étant donné que vous modifiez le code, n'oubliez pas de mettre à jour le commentaire, comme suit.

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

Pour continuer ou examiner