summaryrefslogtreecommitdiffhomepage
path: root/animator.rb
blob: 9fae7717f421a797c68196beed77d4bc82ba069c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55

class AnimatedSquare
  def initialize(x: '0', y: '0', size: 10, color: 'random')
    @speed = (1..5).to_a.sample
    @square = Square.new(x: x, y: y, size: size, color: color)
    @axis = (0..1).to_a.sample
    if @axis == 0
      @range = [(((x-(250..500).to_a.sample)..x).to_a.sample),((x..(x+(250..500).to_a.sample)).to_a.sample)]
    else
      @range = [(((y-(250..500).to_a.sample)..y).to_a.sample),((y..(y+(250..500).to_a.sample)).to_a.sample)]
    end
  end
  def x
    @square.x
  end
  def x= x
    @square.x = x
  end

  def y
    @square.y
  end
  def y= y
    @square.y = y
  end

  def size
    @square.size
  end
  def size= size
    @square.size = size
  end



  def update(offset, zoom)
    width_zoom_offset = Window.width/2 * (zoom-1)
    height_zoom_offset = Window.height/2 * (zoom-1)
    if @axis == 0
      @square.x += @speed * zoom
      if @square.x >= ((@range[1] - offset[0]))
        @speed = -(@speed.abs)
      elsif @square.x <= ((@range[0] - offset[0]))
        @speed = @speed.abs
      end
    else
      @square.y += @speed * zoom
      if @square.y >= ((@range[1] - offset[1]))
        @speed = -(@speed.abs)
      elsif @square.y <= ((@range[0] - offset[1]))
        @speed = @speed.abs
      end
    end
  end
end