Class: Pongo::Renderer::ShoesRenderer

Inherits:
Renderer
  • Object
show all
Defined in:
lib/pongo/renderer/shoes_renderer.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Renderer

#cleanup, #cleanup_circle, #cleanup_rectangle, #cleanup_spring, #cleanup_wheel, #draw, #with

Constructor Details

#initialize(shoes) ⇒ ShoesRenderer

Returns a new instance of ShoesRenderer.



8
9
10
# File 'lib/pongo/renderer/shoes_renderer.rb', line 8

def initialize(shoes)
  @shoes = shoes
end

Instance Attribute Details

#shoesObject (readonly)

Returns the value of attribute shoes.



6
7
8
# File 'lib/pongo/renderer/shoes_renderer.rb', line 6

def shoes
  @shoes
end

Instance Method Details

#draw_circle(item) ⇒ Object Also known as: draw_wheel



12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/pongo/renderer/shoes_renderer.rb', line 12

def draw_circle(item)
  if item.user_data[:shape]
    item.user_data[:shape].style(
      :left => item.px - item.radius, 
      :top => item.py - item.radius
    )
  else
    item.user_data[:shape] = @shoes.oval(
      item.px - item.radius, 
      item.py - item.radius, 
      item.radius * 2
    )
  end
end

#draw_rectangle(item) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/pongo/renderer/shoes_renderer.rb', line 28

def draw_rectangle(item)
  item.user_data[:shape].remove if item.user_data[:shape]
  with(:transform => :center, :rotate => -item.angle) do
    item.user_data[:shape] = 
      @shoes.rect(
        :left => (item.px - item.width/2), 
        :top => (item.py - item.height/2), 
        :width => item.width, 
        :height => item.height
      )
    end
end

#draw_spring(item) ⇒ Object



41
42
43
44
45
46
47
48
# File 'lib/pongo/renderer/shoes_renderer.rb', line 41

def draw_spring(item)
  if item.collidable?
    draw_rectangle(item.scp)
  else
    item.user_data[:shape].remove if item.user_data[:shape]
    item.user_data[:shape] = @shoes.line(item.p1.px, item.p1.py, item.p2.px, item.p2.py)
  end
end