Sonido al colisionar con tiled [SOLUCIONADO]

Hola, quiero saber si es posible que se reproduzca un sonido cuando mis actores colisiones con un solido de tiled.

Estuve investigando y no encontre nada acerca de funciones que se ejecuten al pasar lo que explique anteriormente.

Creo que hay funciones dentro de pilas, para saber si actores estan en contacto, pero no logro que cuando lo haga con Tiled, funcione.

  • ¿No se puede?
  • ¿Es muy complicado?
  • ¿Ejemplos de codigo? (Asi lo adapto al mio)

No creo que sea necesario mi codigo, ya que es una duda muy general, pero si hace falta lo envio.
Estoy en la recta final de mi proyecto, y esto es un avance importante

Desde ya muchas gracias,
Matsimus :slight_smile:

Hola @MatsimusTrolling, para mí lo mejor sería que uses el atributo “figuras_en_contacto”, hay un ejemplo llamado “plataformas” donde se usa justamente con un mapa tiled.

En el caso del ejemplo “plataformas”, la colisión con los sólidos se utiliza para que el protagonista solo pueda saltar cuando está en colisión con el suelo:

Acá está la documentación sobre cómo funcionan este tipo de colisiones, usando “figuras_en_contacto”:

http://manual.pilas-engine.com.ar/colisiones/#deteccion-constante-de-colisiones

Por cierto, hay otro mensaje del foro donde también hablamos de este

Perfecto :grin:, ya logre que me detecte el contancto y que se reproduzca el sonido, pero surgio un problemas.

El sonido se repite constantemente al estar en contacto, me fije porque y probando con un print se printeba de manera infinita.
Quiero saber si hay posibiliadad de que se reproduzca por cada nueva colision y no por una la cual es contante.

ACA EL SONIDO SE REPRODUCE INIFINITAMENTE, porque colisiono y no perdio el contacto, bueno quiero que cuando pase eso solo se escuche 1 sola vez el sonido

Si, se repite muchas veces porque el método “actualizar” se ejecuta 60 veces por segundo. Creo que lo más sencillo, para que se reproduzca una sola vez, es crear una variable que te sirva de control. Una variable tipo “colisionando”, que sea False y cambie a True solamente cuando se produce la colisión. De esa forma, podrías reproducir el sonido solamente cuando la variable pasa de False a True.

Mirá el ejemplo del otro mensaje del foro que te había comentado: Detectar una "descolision" entre actores iguales? - #2 by hugoruscitti

Ahí se usa una variable llamada “colisionando”:

Me imagino que en tu juego, en lugar de llamar a “entra_en_colision” y “sale_de_colision” deberías reproducir el sonido o algo así.

Cualquier cosa comentanos.

Abrazo!

Hugo, muchisimas gracias :grinning:, me diste una mano muy importante.
Quedo, a mi gusto, perfecto.