Game Development Reference
In-Depth Information
72
self
,
BACKGROUND
,
false
)
73
@music
=
Gosu
::
Song
.
new(
74
self
, media_path(
'menu_music.mp3'
))
75
@music
.
volume
= 0.5
76
@music
.
play(
true
)
77
@animation
=
Explosion
.
load_animation(
self
)
78
@sound
=
Explosion
.
load_sound(
self
)
79
@explosions
= []
80
end
81
82
def
update
83
@explosions
.
reject!(
&
:done?
)
84
@explosions
.
map(
&
:update
)
85
end
86
87
def
button_down
(
id
)
88
close
if
id
==
Gosu
::
KbEscape
89
if
id
==
Gosu
::
MsLeft
90
@explosions
.
push(
Explosion
.
new(
91
@animation
,
@sound
, mouse_x, mouse_y))
92
93
end
94
end
95
96
def
needs_cursor?
97
true
98
end
99
100
def
needs_redraw?
101
!
@scene_ready
||
@explosions
.
any?
102
end
103
104
def
draw
105
@scene_ready
||=
true
106
@background
.
draw(
0
,
0
,
0
)
107
@explosions
.
map(
&
:draw
)
108
end
109
end
110
111
window
=
GameWindow
.
new
112
window
.
show
Run it and enjoy the cinematic experience. Adding sound really makes a difference.
$
ruby 01-hello/hello_sound.rb