Animación y Sonido en Visual Basic 6

En este ejemplo desarrollo una animación de un automóvil que se desplaza de un lado a otro hasta que choca con un árbol.

Mientras en automóvil se desplaza hay un sonido de ambiente de fondo y cuando choca hay 2 sonidos uno es el de frenado de auto y el otro es cuando choca. Para animar el automóvil uso el control Timer.

El código para animar es muy simple:

Controles:

Timer1.Interval = 1 este control es el principal y donde va casi toda la programación que seria la siguiente:

Private Sub Timer1_Timer()
    Static Contador As Integer
    Static SonidoF As Boolean
    Static SonidoE As Boolean
    
    ImgCarro1.Left = ImgCarro1.Left + 80
    
    
    If ImgCarro1.Left > Me.Width Then
       ImgCarro1.Left = -50
       Contador = Contador + 1
    End If
    
    If Contador >= 3 Then
       ImgArbol.Visible = True

       
       If ImgCarro1.Left >= 3640 And ImgCarro1.Left <= 11160 And SonidoF = False Then
          Call ReproducirSonido(SonidFrenada, False)
          SonidoF = True
       End If
       If ImgCarro1.Left >= 11160 And SonidoE = False Then
          ImgExplosion.Visible = True
            
          Call ReproducirSonido2(SonidExplosion, False)
          SonidoE = True
          Timer1.Enabled = False
       End If
       
    End If

    
End Sub

Lo que hace que la imagen del auto se desplace es la propiedad Left del control image:

ImgCarro1.Left = ImgCarro1.Left + 80

En cada interacción del control timer se le suma 80 a la propiedad left lo que hace que parezca que automóvil se mueve.

Luego valido que cuando el auto llegue al final del formulario se devuelva:

If ImgCarro1.Left > Me.Width Then
   ImgCarro1.Left = -50
   Contador = Contador + 1
End If

Yo Quiero que el auto de 3 vueltas osea que vaya y vuelva 3 veces antes de mostrar el arbol para eso uso un variable de tipo Static contador para llevar la cuenta y cuando llegue a 3 mostrar la imagen del arbol que tiene la propiedad visible = falta.

If Contador >= 3 Then
       ImgArbol.Visible = True

Cuando el auto esta por llegar al arbol quiero reproducir el sonido de frenado para eso tomo la propiedad left de alto cuando falte una distancia ya definica y valido que cuando sobre pase reproduzca el sonido de frenado.

If ImgCarro1.Left >= 3640 And ImgCarro1.Left <= 11160 And SonidoF = False Then
         Call ReproducirSonido(SonidFrenada, False)
         SonidoF = True
      End If

Para que no se siga reproduciendo el sonido uso la variable SonidoF = True así que cuando cuando se reproduzca el sonido solo lo ara una vez.

Para el choque del auto es igual cuando la propiedad Left del auto llegue a la propiedad del left del arbol reproduzca el sonido de choque y muestre la imagen de la explosión y detemos el Timer usando su propiedad Enabled = false, para que el auto se detenga y no siga.

If ImgCarro1.Left >= 11160 And SonidoE = False Then
       ImgExplosion.Visible = True
         
       Call ReproducirSonido2(SonidExplosion, False)
       SonidoE = True
       Timer1.Enabled = False
    End If

Para reproducir el sonido usamos un control llamado WindowsMediaPlayer y uso la siguientes funciones para reproducir.

Sub ReproducirSonido(nombre, Repertir As Boolean)
    WindowsMediaPlayer1.url = App.Path & "\sonidos\" & nombre
    If Repertir = True Then
       WindowsMediaPlayer1.settings.setMode "loop", True
    Else
       WindowsMediaPlayer1.settings.setMode "loop", False
    End If
   
End Sub
Sub ReproducirSonido2(nombre, Repertir As Boolean)
    WindowsMediaPlayer2.url = App.Path & "\sonidos\" & nombre
    If Repertir = True Then
       WindowsMediaPlayer2.settings.setMode "loop", True
    Else
       WindowsMediaPlayer2.settings.setMode "loop", False
    End If
    
End Sub

Uso 2 funciones porque debo reproducir 2 sonido casi al mismo tiempo por eso también uso 2 controles de WindowsMediaPlayer.

Para reproducir el sonido solo es pasarle la url de sonido MP3 y le paso si se repite o no se repite el sonido

WindowsMediaPlayer1.url = App.Path & "\sonidos\" & nombre

El código del Ejemplo lo puedes descargar de aquí Animación y Sonido en Visual Basic 6 (163 descargas )

 

 

 

 

Total Page Visits: 8519 - Today Page Visits: 2

Deja una respuesta