Eliminar actores y sonidos cuando salen de la pantalla

Hola, como están!

Hago una consulta porque me surgió un inconveniente que no puedo resolver.

Estoy haciendo un juego donde un personaje debe atrapar ciertos objetos y otros debe esquivar.

Y ahí es donde tengo problemas. Los objetos caen de arriba hacia abajo.

A los objetos que el personaje debe esquivar (“enemigos”) les he dado la habilidad de explotar en caso de colisionar con el personaje. Y eso funciona, cuando hay una colisión con “enemigo”, éste objeto explota y desaparece. El problema ocurre cuando los objetos pasan de largo y salen de la pantalla y se produce el sonido de explosión solo.

Como puedo hacer para que los objetos que salen de pantalla no sigan reproduciendo el sonido de explosión. Porque el objeto se debe eliminar cuando sale de pantalla para no seguir ocupando recursos.

He visto ejemplos donde la habilidad es “ExplotarConHumo” ya que ésta no produce sonido, sino que es solo la animación de una explosión. Y una vez que éste actor esté fuera de la pantalla por mas que explote no produce sonido. Pero en mi caso que agrego un sonido a la colisión, si dejo pasar al actor y sale de la pantalla, luego reproduce el sonido cuando llega al limite especificado para eliminar.

Y ya que estoy consulto por si les ha pasado, cuando abro el interprete y ejecuto un juego, una vez que cierro la ventana del juego, los sonidos de explosiones continúan realizándose.

Hola @Fabian_Montecino,

podrías probar poner sonido_de_explosion.detener() en la función eliminar al enemigo cuando se sale de la pantalla.

Por otro lado lo de los sonidos que sigen cuando cerras la ventana del juego hay un post sobre esto, pero aún no se identificó si es un bug del programa o no.

Saludos!

Hola @ElitaTnk, gracias por la respuesta, ya pude solucionar el problema con el sonido de las explosiones.

Y en cuanto al otro tema, no he visto ese post, pero voy a seguir viendo porque se sigue reproduciendo el sonido luego de cerrar la ventana de ejecución de un juego.

Saludos! :+1: