core :: union_find
union–find algorithm using an efficient disjoint-set data structureEulerCamera
and App::frame_core_draw
to get a stereoscopic view
# Services to load and play `Sound` and `Music` from the assets folder
#
# Get a handle to a sound using `new Sound` or `new Music` at any time.
# Call `load` at or after `App::on_create` or leave it to be loaded
# on demand by the first call to `play`.
module audio
import app_base
import core::error
# Platform variations
import linux::audio is conditional(linux)
import android::audio is conditional(android)
import ios::audio is conditional(ios)
# Abstraction of a playable Audio
abstract class PlayableAudio
init do sounds.add self
# Path to the audio file in the assets folder
var path: String
# Last error on this sound, if any
fun error: nullable Error do return null
# Load this playable audio
fun load do end
# Play the sound
fun play do end
# Pause the sound
fun pause do end
# Resume the sound
fun resume do end
end
# Short sound
class Sound
super PlayableAudio
end
# Long sound that can bee looped
class Music
super PlayableAudio
end
redef class Sys
# All instantiated sounds
var sounds = new Array[PlayableAudio]
end
lib/app/audio.nit:17,1--70,3