Game Development Reference
In-Depth Information
attr_accessor
:fire_rate_modifier
# ...
def
can_shoot?
Gosu
.
milliseconds
-
(
@last_shot
|| 0
)
>
(
SHOOT_DELAY
/
@fire_rate_modifier
)
end
# ...
def
reset_modifiers
@fire_rate_modifier
= 1
end
# ...
end
Tank#reset_modifier
should be called when respawning, since we want tanks to
lose their powerups when they die. It can be done in
TankHealth#after_death
:
class
TankHealth
<
Health
# ...
def
after_death
object
.
reset_modifiers
# ...
end
end
Implementing Tank Speed Boost
Tank speed boost is very similar to fire rate powerup:
11-powerups/entities/powerups/tank_speed_powerup.rb
1
class
TankSpeedPowerup
<
Powerup
2
def
pickup
(object)
3
if
object
.
class
==
Tank
4
if
object
.
speed_modifier
< 1.5
5
object
.
speed_modifier
+= 0.10
6
end
7
true
8
end
9
end
10
11
def
graphics
12
:wingman
13
end
14
end