class Eagle::AudioPlayer2D

Overview

A sound with a position. It gets quieter with distance from the listener and pans left or right, which suits footsteps, explosions and ambient loops placed in the level.

The listener is the current Camera2D, or the origin when there is none.

waterfall = AudioPlayer2D.new(Sound.tone(200, 2, Sound::Wave::Noise), position: v2(900, 300), loop: true, autoplay: true)
waterfall.max_distance = 600
SceneTree.root.add(waterfall)

Included Modules

Defined in:

eagle/nodes/audio_player.cr

Constructors

Instance Method Summary

Instance methods inherited from module Eagle::AudioPlayback

autoplay=(autoplay) autoplay=, autoplay? autoplay?, bus : String bus, bus=(bus : String) bus=, effective_pan : Float32 effective_pan, effective_volume : Float32 effective_volume, emit_finished(*args) : Nil emit_finished, finished : Eagle::Emitter() finished, loop=(loop) loop=, loop? loop?, on_finished(&block : -> Nil) : Proc(Nil) on_finished, pan : Float32 pan, pan=(pan : Float32)
pan=(v : Number)
pan=
, pitch : Float32 pitch, pitch=(pitch : Float32)
pitch=(v : Number)
pitch=
, play(sound : Sound | Nil = nil) : Voice | Nil play, playing? : Bool playing?, sound : Sound | Nil sound, sound=(sound : Sound | Nil) sound=, stop : Nil stop, update_voice : Nil update_voice, voice : Voice | Nil voice, volume : Float32 volume, volume=(volume : Float32)
volume=(v : Number)
volume=

Instance methods inherited from class Eagle::Node2D

direction_to(other : Node2D) : Vec2 direction_to, distance_to(other : Node2D) : Float32 distance_to, down : Vec2 down, forward : Vec2 forward, global_position : Vec2 global_position, global_position=(p : Vec2) global_position=, global_rotation : Float32 global_rotation, global_scale : Vec2 global_scale, global_transform : Transform2D global_transform, look_at(target : Vec2) : Nil look_at, modulate : Color modulate, modulate=(modulate : Color) modulate=, parent_2d : Node2D | Nil parent_2d, position : Vec2 position, position=(p : Vec2) position=, right : Vec2 right, rotate(rad : Number) : Nil rotate, rotation : Float32 rotation, rotation=(rotation : Float32) rotation=, rotation_degrees : Float32 rotation_degrees, rotation_degrees=(d : Number) rotation_degrees=, scale : Vec2 scale, scale=(s : Vec2)
scale=(s : Number)
scale=
, to_global(local : Vec2) : Vec2 to_global, to_local(global : Vec2) : Vec2 to_local, top_level=(top_level : Bool) top_level=, top_level? : Bool top_level?, transform : Transform2D transform, transform=(t : Transform2D) transform=, translate(x : Number, y : Number) : Nil
translate(v : Vec2) : Nil
translate
, x : Float32 x, x=(v : Number) x=, y : Float32 y, y=(v : Number) y=

Constructor methods inherited from class Eagle::Node2D

new(name : String = "", position : Eagle::Vec2 = Vec2::ZERO, rotation : Float32 = 0_f32, scale : Eagle::Vec2 = Vec2::ONE) new

Instance methods inherited from class Eagle::Node

<<(child : Node) : self <<, [](path : String) : Node [], []?(path : String) : Node | Nil []?, add(child : Node) : Node
add(*children : Node) : Nil
add
, add_child(child : Node) : Node add_child, add_to_group(group : String) : self add_to_group, ancestor_of?(node : Node) : Bool ancestor_of?, can_process? : Bool can_process?, child?(name : String) : Node | Nil child?, child_added : Eagle::Emitter(Node) child_added, child_count : Int32 child_count, child_removed : Eagle::Emitter(Node) child_removed, children : Array(Eagle::Node) children, children_of(type : T.class) : Array(T) forall T children_of, clear_children : Nil clear_children, draw(g : Graphics) : Nil draw, dump(io : IO = STDOUT, indent = 0) : Nil dump, each_ancestor(& : Node -> ) : Nil each_ancestor, each_child(& : Node -> ) : Nil each_child, each_descendant(&block : Node -> ) : Nil each_descendant, emit_child_added(*args) : Nil emit_child_added, emit_child_removed(*args) : Nil emit_child_removed, emit_tree_entered(*args) : Nil emit_tree_entered, emit_tree_exited(*args) : Nil emit_tree_exited, enter_tree : Nil enter_tree, exit_tree : Nil exit_tree, find(name : String) : Node | Nil find, find_all(type : T.class) : Array(T) forall T find_all, first_child : Node | Nil first_child, free : Nil free, get_node(path : String, type : T.class) : T forall T
get_node(path : String) : Node
get_node
, get_node?(path : String) : Node | Nil get_node?, groups : Set(String) groups, in_group?(group : String) : Bool in_group?, in_tree? : Bool in_tree?, input(event : Event) : Nil input, name : String name, name=(name : String) name=, on_child_added(&block : Node -> Nil) : Proc(Node, Nil) on_child_added, on_child_removed(&block : Node -> Nil) : Proc(Node, Nil) on_child_removed, on_tree_entered(&block : -> Nil) : Proc(Nil) on_tree_entered, on_tree_exited(&block : -> Nil) : Proc(Nil) on_tree_exited, parent : Node | Nil parent, path : String path, physics_process(dt : Float32) : Nil physics_process, process(dt : Float32) : Nil process, process_mode : Eagle::Node::ProcessMode process_mode, process_mode=(process_mode : Eagle::Node::ProcessMode) process_mode=, queue_free : Nil queue_free, queued_free? : Bool queued_free?, ready : Nil ready, ready_called? : Bool ready_called?, remove(child : Node) : Nil remove, remove_child(child : Node) : Nil remove_child, remove_from_group(group : String) : Nil remove_from_group, remove_from_parent : Nil remove_from_parent, resized(width : Int32, height : Int32) : Nil resized, root : Node root, to_s(io : IO) : Nil to_s, tree_entered : Eagle::Emitter() tree_entered, tree_exited : Eagle::Emitter() tree_exited, visible=(visible : Bool) visible=, visible? : Bool visible?, z_index : Int32 z_index, z_index=(z_index : Int32) z_index=

Constructor methods inherited from class Eagle::Node

new(name : String = "") new

Constructor Detail

def self.new(sound : Sound | Nil = nil, position : Vec2 = Vec2::ZERO, name : String = "", volume : Number = 1, loop : Bool = false, autoplay : Bool = false, max_distance : Number = 800) #

Creates a positional player.


Instance Method Detail

def attenuation : Float32 #

Shape of the fall-off: 1 is linear, and higher values fade faster near the source.


def attenuation=(attenuation : Float32) #

Shape of the fall-off: 1 is linear, and higher values fade faster near the source.


def effective_pan : Float32 #

Pan from the horizontal offset to the listener.


def effective_volume : Float32 #

Volume after distance fall-off.


def exit_tree : Nil #

Stops playback when removed.


def listener_position : Vec2 #

Where the listener is: the current camera's center or the origin.


def max_distance : Float32 #

Distance at which the sound becomes silent.


def max_distance=(max_distance : Float32) #

Distance at which the sound becomes silent.


def pan_width : Float32 #

Horizontal distance at which the sound is fully in one speaker.


def pan_width=(pan_width : Float32) #

Horizontal distance at which the sound is fully in one speaker.


def process(dt : Float32) : Nil #

Keeps the voice in sync. Called by the engine.


def ready : Nil #

Starts playing if autoplay is set.