Servicio sonido
Referencia del servicio sonido. Sonidos sintetizados: predefinidos, tonos, ruido y secuencias de notas.
Corresponde aFormato 1, API 1 Para quien escribe código Esta página se genera desde las fuentes del SDK.
En esta página
Sonidos sintetizados: predefinidos, tonos, ruido y secuencias de notas.
Los tipos que aparecen en las firmas (Vec3, Texto, el selector) están en la referencia de la API.
Funciones y propiedades de sonido#
sonido.tocar#
sonido.tocar(nombre: SonidoPredefinido, opciones?: { volumen?: number; tono?: number; para?: Jugador }): voidToca un sonido predefinido.
De docs/EJEMPLOS.md, «sonido»:
mundo.alTocar('#moneda', (_m, j) => sonido.tocar('moneda', { para: j }));sonido.tono#
sonido.tono(def: { frecuencia: number; duracion: number; onda?: 'seno' | 'cuadrada' | 'sierra' | 'triangulo'; hasta?: number; volumen?: number; para?: Jugador }): voidSintetiza un tono.
De docs/EJEMPLOS.md, «sonido»:
mundo.alTocar('#laser', () => sonido.tono({ frecuencia: 900, hasta: 120, duracion: 0.3, onda: 'sierra' }));sonido.secuencia#
sonido.secuencia(notas: { nota: string | number | null; pulsos?: number }[], opciones?: { pulsosPorMinuto?: number; repetir?: boolean; onda?; volumen?: number; para?: Jugador }): numberToca una secuencia de notas. Devuelve un id para detenerla.
De docs/EJEMPLOS.md, «sonido»:
const musica = sonido.secuencia(
[{ nota: 'do4' }, { nota: 'mi4' }, { nota: 'sol4' }, { nota: null }, { nota: 'la4', pulsos: 2 }],
{ pulsosPorMinuto: 240, repetir: true, onda: 'triangulo', volumen: 0.3 }
);sonido.detener#
sonido.detener(id: number): voidDetiene una secuencia. Recibe el id que devolvió sonido.secuencia.
De docs/EJEMPLOS.md, «sonido»:
mundo.alEntrar('meta', () => sonido.detener(musica));sonido.ruido#
sonido.ruido(def: { duracion: number; volumen?: number; filtro?: number; hasta?: number; ataque?: number; para?: Jugador }): voidRuido (explosión, viento, lluvia, pasos). filtro, en Hz, lo hace más grave; hasta desliza el filtro.
De docs/EJEMPLOS.md, «mundo: luces, ambiente y zonas creadas por el script»:
// Anochece en 20 segundos y se encienden los faroles (luces con "id" en la escena).
reloj.despues(30, () => {
mundo.ambiente({ cielo: 'noche', luzAmbiente: 0.25, sol: { intensidad: 0.1 }, niebla: { desde: 10, hasta: 60 } }, 20);
for (const luz of mundo.luces()) luz.encendida = true;
sonido.ruido({ duracion: 3, filtro: 600, volumen: 0.4, ataque: 1 });
});sonido.muestra#
sonido.muestra(id: string, opciones?: OpcionesSonido): voidReproduce un sonido grabado del juego (sonidos/<id>.wav o .mp3). Agregado en la versión 1.2.
Notas de comportamiento#
sonido.tono admite además ataque y caida (segundos de la envolvente). sonido.ruido es ruido filtrado: filtro en Hz lo hace más grave y hasta desliza el filtro (explosión: { duracion: 0.6, filtro: 2000, hasta: 100 }).
Todo el sonido es sintetizado. Predefinidos: moneda, salto, golpe, caida, control, victoria, derrota, clic, alerta, tic, luz, poder. Las notas se escriben 'do4', 'fa#5', 'la3'; null es silencio.
Ejemplos completos#
Scripts completos de docs/EJEMPLOS.md. Cada uno supone una escena con lo que nombra, y las claves de texto (interfaz.t('...')) deben existir en textos de juego.json.
sonido#
import { juego, mundo, sonido } from '@greengames/sdk';
juego.alIniciar(() => {
mundo.alTocar('#moneda', (_m, j) => sonido.tocar('moneda', { para: j }));
mundo.alTocar('#laser', () => sonido.tono({ frecuencia: 900, hasta: 120, duracion: 0.3, onda: 'sierra' }));
const musica = sonido.secuencia(
[{ nota: 'do4' }, { nota: 'mi4' }, { nota: 'sol4' }, { nota: null }, { nota: 'la4', pulsos: 2 }],
{ pulsosPorMinuto: 240, repetir: true, onda: 'triangulo', volumen: 0.3 }
);
mundo.alEntrar('meta', () => sonido.detener(musica));
});Sigue con#
- Servicio progreso
- Referencia de la API: los once servicios y los tipos comunes.
- Scripts: las reglas de un script y cómo corre dentro de la sala.