Noah Petherbridge
27896a9253
Adds support for sound effects in Doodle and configures some for various doodads to start out with: * Buttons and Switches: "Clicked down" and "clicked up" sounds. * Colored Doors: an "unlocked" sound and a "door opened" sound. * Electric Door: sci-fi sounds when opening and closing. * Keys: sound effect for collecting keys. JavaScript API for Doodads adds a global function `Sound.Play(filename)` to play sounds. All sounds in the `rtp/sfx/` folder are pre-loaded on startup for efficient use in the app. Otherwise sounds are lazy-loaded on first playback.
26 lines
448 B
Go
26 lines
448 B
Go
package sound
|
|
|
|
import (
|
|
"io/ioutil"
|
|
"path/filepath"
|
|
)
|
|
|
|
// PreloadAll looks in the SoundRoot and MusicRoot folders and preloads all
|
|
// supported files into the caches.
|
|
func PreloadAll() {
|
|
if engine == nil || !Enabled {
|
|
return
|
|
}
|
|
|
|
// Preload sound effects.
|
|
if files, err := ioutil.ReadDir(SoundRoot); err == nil {
|
|
for _, file := range files {
|
|
if filepath.Ext(file.Name()) != ".wav" {
|
|
continue
|
|
}
|
|
|
|
LoadSound(file.Name())
|
|
}
|
|
}
|
|
}
|