rubydraw 0.1.7.1 → 0.1.8

Sign up to get free protection for your applications and to get access to all the features.
@@ -18,5 +18,19 @@ module Rubydraw
18
18
  end
19
19
  @x, @y = x, y
20
20
  end
21
+
22
+ # Returns if this self falls within the given rectangle.
23
+ def inside?(min, max)
24
+ (x.between?(min.x, max.x)) and (y.between?(min.y, max.y))
25
+ end
26
+
27
+ # Add this point's x and y positions to other's x and y positions.
28
+ #
29
+ # Example:
30
+ # # This produces #<Rubydraw::Point:0x1010f1958 @y=10, @x=60>
31
+ # Rubydraw::Point[10, 20] + Rubydraw::Point[50, -10]
32
+ def +(other)
33
+ Point[self.x + other.x, self.y + other.y]
34
+ end
21
35
  end
22
36
  end
@@ -0,0 +1,36 @@
1
+ module Rubydraw
2
+ # A Rectangle is defined by the position, width, and height, and knows if a point
3
+ # falls inside it. One good use for this class would be a button (will be implemented
4
+ # in a future version, probably soon)
5
+ class Rectangle
6
+ attr_reader(:position, :width, :height)
7
+
8
+ # Create a new rectangle with the given dimensions and position.
9
+ def initialize(width, height, position)
10
+ @width, @height, @position = width, height, position
11
+ end
12
+
13
+ # Returns the x position for the rectangle
14
+ def x
15
+ @position.x
16
+ end
17
+
18
+ # Returns this rectangle's y position
19
+ def y
20
+ @position.y
21
+ end
22
+
23
+ # Returns the positon of the top left corner
24
+ alias top_left position
25
+
26
+ # Returns the position at the bottom right
27
+ def bottom_right
28
+ Point[x + @width, y + @height]
29
+ end
30
+
31
+ # Returns if the given point is inside this rectangle. See Rubydraw::Point::inside?
32
+ def contains?(point)
33
+ point.inside?(top_left, bottom_right)
34
+ end
35
+ end
36
+ end
data/lib/rubydraw.rb CHANGED
@@ -11,7 +11,8 @@ files = %w[
11
11
  keys
12
12
  point
13
13
  color
14
- sdl_error]
14
+ sdl_error
15
+ rectangle]
15
16
  files.each {|f| require("rubydraw/" + f)}
16
17
  require 'ext/string'
17
18
 
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubydraw
3
3
  version: !ruby/object:Gem::Version
4
- hash: 89
4
+ hash: 11
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 7
10
- - 1
11
- version: 0.1.7.1
9
+ - 8
10
+ version: 0.1.8
12
11
  platform: ruby
13
12
  authors:
14
13
  - J. Wostenberg
@@ -60,6 +59,7 @@ files:
60
59
  - lib/rubydraw/events.rb
61
60
  - lib/rubydraw/point.rb
62
61
  - lib/rubydraw/color.rb
62
+ - lib/rubydraw/rectangle.rb
63
63
  - examples/window_ex.rb
64
64
  - examples/image_ex.rb
65
65
  - examples/sound_ex.rb