Game Development Reference
In-Depth Information
7
8 def self . cleanup
9 @@all_instances . each do | instances |
10 instances . each do | key, instance |
11 unless instance . playing? || instance . paused?
12 instances . delete(key)
13 end
14 end
15 end
16 end
17
18 def initialize (window, sound_l, sound_r = sound_l)
19 @sound_l = Gosu :: Sample . new(window, sound_l)
20 # Use same sample in mono -> stereo
21 if sound_l == sound_r
22 @sound_r = @sound_l
23 else
24 @sound_r = Gosu :: Sample . new(window, sound_r)
25 end
26 @instances = {}
27 self . class . register_instances( @instances )
28 end
29
30 def paused? ( id = :default )
31 i = @instances [ " #{ id } _l" ]
32 i && i . paused?
33 end
34
35 def playing? ( id = :default )
36 i = @instances [ " #{ id } _l" ]
37 i && i . playing?
38 end
39
40 def stopped? ( id = :default )
41 @instances [ " #{ id } _l" ]. nil?
42 end
43
44 def play ( id = :default , pan = 0 ,
45 volume = 1 , speed = 1 , looping = false )
46 @instances [ " #{ id } _l" ] = @sound_l . play_pan(
47 -0.2 , 0 , speed, looping)
48 @instances [ " #{ id } _r" ] = @sound_r . play_pan(
49 0.2 , 0 , speed, looping)
50 volume_and_pan( id , volume, pan)
51 end
52
Search WWH ::




Custom Search