Game Development Reference
In-Depth Information
11
object,
@object_pool
.
camera)
12
pan
=
Utils
.
pan(object,
@object_pool
.
camera)
13
if
driving_sound
.
paused?(
id
)
14
driving_sound
.
resume(
id
)
15
elsif
driving_sound
.
stopped?(
id
)
16
driving_sound
.
play(
id
, pan,
0.5
,
1
,
true
)
17
end
18
driving_sound
.
volume_and_pan(
id
, move_volume
* 0.5
, pan)
19
else
20
if
driving_sound
.
playing?(
id
)
21
driving_sound
.
pause(
id
)
22
end
23
end
24
end
25
26
def
collide
27
vol, pan
=
Utils
.
volume_and_pan(
28
object,
@object_pool
.
camera)
29
crash_sound
.
play(
self
.
object_id, pan, vol,
1
,
false
)
30
end
31
32
private
33
34
def
driving_sound
35
@@driving_sound
||=
StereoSample
.
new(
$window
,
Utils
.
media_path(
'tank_driving.mp3'
))
36
37
end
38
39
def
crash_sound
40
@@crash_sound
||=
StereoSample
.
new(
$window
,
Utils
.
media_path(
'metal_interaction2.wav'
))
41
42
end
43
end
And this is how static
ExplosionSounds
looks like:
09-polishing/entities/components/explosion_sounds.rb
1
class
ExplosionSounds
2
class
<<
self
3
def
play
(object, camera)
4
volume, pan
=
Utils
.
volume_and_pan(object, camera)
5
sound
.
play(object
.
object_id, pan, volume)
6
end
7
8
private