Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

Muchas gracias!

Con respecto a la sincronización, utilicé el AnimationPlayer de Godot para interpolar propiedades y ejecutar métodos en momentos específicos, además de los process loops normales. El problema es que el Audio en web va en un thread separado y algunas cosas (ej. dejar la ventana del browser en segundo plano) causan que se desincronice de los frames. Pero para una jam, creo que es aceptable.

Ah no usaste nada de AudioStreamInteractive? Interesante!

Particularmente me interesaba para la transición entre los "rezos" en la escena del cáliz (que se repiten) y la canción principal. Intenté al principio, pero no encontré buenos ejemplos y no tenía demasiado tiempo para investigar y probar. 

Al final puse los rezos en un AudioStreamPlayer en loop, y cuando sujetas el cáliz le deshabilito el loop, espero el finished() y ya luego inicio la canción en otro AudioStreamPlayer:

chant_player.stream.loop_mode = AudioStreamWAV.LOOP_DISABLED
await chant_player.finished
chant_player.stop()
chant_player.stream.loop_mode = AudioStreamWAV.LOOP_FORWARD
scene.start_phase(scene.summon_phase)

Algo importante, no me funcionaba bien en web: nunca paraba de reproducirse el rezo. Se ve que no le gustaba que cambiara el loop_mode en tiempo de ejecución. Se solucionó fijando el Playback Type del AudioStreamPlayer ese como "Stream".