class Pong::Field

Attributes

height[RW]
width[RW]

Public Class Methods

new(margin=0.05) click to toggle source
# File gtk2/sample/misc/cairo-pong.rb, line 132
def initialize(margin=0.05)
  @margin = margin
  
  @left_paddle = Paddle.new(self, @margin, 0.5)
  @right_paddle = Paddle.new(self, 1 - @margin, 0.7)
  @paddles = [@left_paddle, @right_paddle]
  @ball = Ball.new
end

Public Instance Methods

draw(cr) click to toggle source
# File gtk2/sample/misc/cairo-pong.rb, line 151
def draw(cr)
  cr.set_source_rgba(1, 1, 1)
  cr.rectangle(0, 0, 1, 1)
  cr.fill

  cr.save do
    cr.set_source_rgba(0.8, 0.8, 0.8, 0.8)
    cr.set_line_join(Cairo::LINE_JOIN_ROUND)
    @paddles.each do |paddle|
      cr.save {paddle.draw(cr)}
    end
  end
  
  cr.set_source_rgba(0, 0, 0)
  cr.save {@ball.draw(cr)}
end
update() click to toggle source
# File gtk2/sample/misc/cairo-pong.rb, line 141
def update
  @paddles.each do |paddle|
    paddle.update(@ball)
  end
  @ball.update
  @paddles.each do |paddle|
    paddle.update_ball(@ball)
  end
end