class TankNavigatingState
Public Class Methods
new(object, vision)
click to toggle source
# File lib/entities/components/ai/tank_navigating_state.rb, line 2 def initialize(object, vision) @object = object @vision = vision end
Public Instance Methods
change_direction()
click to toggle source
# File lib/entities/components/ai/tank_navigating_state.rb, line 12 def change_direction closest_free_path = @vision.closest_free_path if closest_free_path @object.physics.change_direction( Utils.angle_between( @object.x, @object.y, *closest_free_path)) end @changed_direction_at = Gosu.milliseconds @will_keep_direction_for = turn_time end
drive_time()
click to toggle source
# File lib/entities/components/ai/tank_navigating_state.rb, line 27 def drive_time rand(1000..2000) end
turn_time()
click to toggle source
# File lib/entities/components/ai/tank_navigating_state.rb, line 31 def turn_time rand(300..1000) end
update()
click to toggle source
# File lib/entities/components/ai/tank_navigating_state.rb, line 7 def update change_direction if should_change_direction? drive end
wait_time()
click to toggle source
# File lib/entities/components/ai/tank_navigating_state.rb, line 23 def wait_time rand(10..100) end