diff options
Diffstat (limited to 'lib/ruby2d/rectangle.rb')
| -rw-r--r-- | lib/ruby2d/rectangle.rb | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/lib/ruby2d/rectangle.rb b/lib/ruby2d/rectangle.rb new file mode 100644 index 0000000..45a0cee --- /dev/null +++ b/lib/ruby2d/rectangle.rb @@ -0,0 +1,57 @@ +# rectangle.rb + +module Ruby2D + class Rectangle < Ruby2D::Quad + + attr_reader :x, :y, :width, :height + + def initialize(x, y, w, h, c='white') + @type_id = 2 + @x, @y, @width, @height, @color = x, y, w, h, c + update_coords(x, y, w, h) + update_color(c) + + if defined? Ruby2D::DSL + Ruby2D::Application.add(self) + end + end + + def x=(x) + @x = @x1 = x + @x2 = x + @width + @x3 = x + @width + @x4 = x + end + + def y=(y) + @y = @y1 = y + @y2 = y + @y3 = y + @height + @y4 = y + @height + end + + def width=(w) + @width = w + update_coords(@x, @y, w, @height) + end + + def height=(h) + @height = h + update_coords(@x, @y, @width, h) + end + + private + + def update_coords(x, y, w, h) + @x1 = x + @y1 = y + @x2 = x + w + @y2 = y + @x4 = x + @y4 = y + h + @x3 = x + w + @y3 = y + h + end + + end +end |
