Game Development Reference
In-Depth Information
25
26
def
draw
(viewport)
27
if
@shaking
28
shaking_for
=
Gosu
.
milliseconds
-
@shake_start
29
shaking_x, shaking_y
=
adjust_shake(
30
center_x, center_y, shaking_for)
31
@tree
.
draw(shaking_x, shaking_y,
5
)
32
if
shaking_for
>=
SHAKE_TIME
33
@shaking
=
false
34
end
35
else
36
@tree
.
draw(center_x, center_y,
5
)
37
end
38
Utils
.
mark_corners(object
.
box)
if
$debug
39
end
40
41
def
height
42
@tree
.
height
43
end
44
45
def
width
46
@tree
.
width
47
end
48
49
private
50
51
def
load_sprite
(seed)
52
frame_list
=
trees
.
frame_list
53
frame
=
frame_list
[
(frame_list
.
size
*
seed)
.
round
]
54
@tree
=
trees
.
frame(frame)
55
end
56
57
def
center_x
58
@center_x
||=
x
-
@tree
.
width
/ 2
59
end
60
61
def
center_y
62
@center_y
||=
y
-
@tree
.
height
/ 2
63
end
64
65
def
trees
66
@@trees
||=
Gosu
::
TexturePacker
.
load_json(
$window
,
Utils
.
media_path(
'trees_packed.json'
))
67
68
end
69
end