Game Development Reference
In-Depth Information
50
sound
.
play(
true
)
51
else
52
sound
.
pause
53
end
54
55
if
$window
.
button_down?(
Gosu
::
MsLeft
)
56
shoot(
*
camera
.
mouse_coords)
57
end
58
end
59
60
def
moving?
61
any_button_down?(
Gosu
::
KbA
,
Gosu
::
KbD
,
Gosu
::
KbW
,
Gosu
::
KbS
)
62
end
63
64
def
draw
65
@shadow
.
draw_rot(
@x
- 1
,
@y
- 1
,
0
,
@body_angle
)
66
@body
.
draw_rot(
@x
,
@y
,
1
,
@body_angle
)
67
@gun
.
draw_rot(
@x
,
@y
,
2
,
@gun_angle
)
68
end
69
70
def
speed
71
@speed
||= 1.0
72
if
moving?
73
@speed
+= 0.03
if
@speed
< 5
74
else
75
@speed
= 1.0
76
end
77
@speed
78
end
79
80
private
81
82
def
any_button_down?
(
*
buttons)
83
buttons
.
each
do
|
b
|
84
return
true
if
$window
.
button_down?(b)
85
end
86
false
87
end
88
89
def
change_angle
(previous_angle, up, down, right, left)
90
if
$window
.
button_down?(up)
91
angle
= 0.0
92
angle
+= 45.0
if
$window
.
button_down?(left)
93
angle
-= 45.0
if
$window
.
button_down?(right)
94
elsif
$window
.
button_down?(down)
95
angle
= 180.0