Hola cómo están?
Tuve un inconveniente extraño al intentar ponerle sonido de fondo a un juego en la escena “Menu”.
Cuando inicia la ejecución el sonido se reproduce dos veces casi en simultaneo, pero se distingue que se inicia la pista de sonido dos veces y se superponen.
Es raro ya que había implementado sonido en otras escenas y no he tenido éste problema.
Aquí el código:
import pilasengine
class EscenaMenu(pilasengine.escenas.Escena):
def iniciar(self):
self.pilas.fondos.Fondo("data/cielo_arcoiris.png")
self.mi_menu = self.pilas.actores.Menu(
[
('Iniciar Juego', self.iniciar_juego),
('Instrucciones', self.ver_ayuda),
('Controles', self.ver_controles),
('Niveles', self.ver_niveles),
('Salir', self.salir_del_juego),
])
self.mi_menu.x = 120
self.mi_menu.escala = 5
self.mi_menu.escala = [1.5], 4
self.mi_menu.rotacion = [360], 4
# Aquí reproducimos el sonido de fondo
self.reproducir_sonido_fondo()
def reproducir_sonido_fondo(self):
global sonido_fondo
self.sonido_fondo = self.pilas.sonidos.cargar('data/audio/musica_menu.wav')
self.sonido_fondo.reproducir(repetir=False)
def detener_sonido(self):
global sonido_fondo
self.sonido_fondo.detener()
def iniciar_juego(self):
self.pilas.escenas.EscenaPrevia()
self.detener_sonido()
def ver_ayuda(self):
self.pilas.escenas.EscenaAyuda()
self.detener_sonido()
def ver_controles(self):
self.pilas.escenas.EscenaControles()
self.detener_sonido()
def ver_niveles(self):
self.pilas.escenas.EscenaNiveles()
self.detener_sonido()
def salir_del_juego(self):
import sys
self.detener_sonido()
#self.pilas.cerrar() #terminar()
sys.exit(0)