Module: EhbGameLib::Traits::BoundingLineSegment

Defined in:
lib/ehb_game_lib/traits/bounding_line_segment.rb

Overview

Interface required: attr_reader :last_x, :last_y

Instance Method Summary collapse

Instance Method Details

#nearest_circle_collision(klasses) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/ehb_game_lib/traits/bounding_line_segment.rb', line 8

def nearest_circle_collision(klasses)
  return [nil, nil] unless line_segment?

  min_obj = min_p = min_dist = nil
  each_circle_collision(klasses) do |object, p|
    dist = Gosu.distance(last_x, last_y, p.x, p.y)
    next unless min_dist.nil? || dist < min_dist

    min_dist = dist
    min_obj = object
    min_p = p
  end
  [min_obj, min_p]
end