image

  • フォト Amazonギフト券
    ※この時計の時刻は、閲覧しているパソコンのものであり、必ずしも正確な時間とは限りません

検索

最近のトラックバック

無料ブログはココログ

« 書籍 Built with Processing [改訂版] を買った (その2) | トップページ | ピックアップ: 起動大幅改善JRuby 1.1.2、YAMLシンボル処理は100倍以上, なぜオープン系開発者の間でMacへのシフトが急速に進んでいるのか, etc... »

2008-05-30

書籍 Built with Processing [改訂版] を買った (その3)

壁に反射するボールの例を作成した。
# 整理すればもっと短くかけるはずだ!
Sample05_2
$ cat sample05.rb

def setup
  @FRICTION = 0.96
  @radius = 10

  size(200, 200)

  colorMode(HSB, 100)
  set_color
  rectMode(CORNER)
  rect(0, 0, width, height)
  fadeToWhite

  smooth
  noStroke
  frameRate(24)

  @x0 = width / 2
  @y0 = height / 2
  set_speed
end

def set_speed
  @dx = random(-30, 30)
  @dy = random(-30, 30)
end

def set_color
  fill(60, 100, 100)
end

def draw
  fadeToWhite

  @dx *= @FRICTION
  @dy *= @FRICTION
  @x0 += @dx
  @y0 += @dy

  bounce

  set_color
  ellipse(@x0, @y0, @radius * 2, @radius * 2)

end

def bounce
  bounceMinX = @radius
  bounceMaxX = width - @radius
  bounceMinY = @radius
  bounceMaxY = height - @radius

  if (@x0 < bounceMinX) || (@x0 > bounceMaxX)
    @dx = -@dx
    @x0 = bounceMinX - (bounceMinX - @x0) if @x0 < bounceMinX
    @x0 = bounceMaxX - (bounceMaxX - @x0) if @x0 > bounceMaxX

    @x0 = bounceMinX if @x0 < bounceMinX
    @x0 = bounceMaxX if @x0 > bounceMaxX
  end

  if (@y0 < bounceMinY) || (@y0 > bounceMaxY)
    @dy = -@dy
    @y0 = bounceMinY  - (bounceMinY - @y0) if @y0 < bounceMinY
    @y0 = bounceMaxY  - (bounceMaxY - @y0) if @y0 > bounceMaxY

    @y0 = bounceMinY if @y0 < bounceMinY
    @y0 = bounceMaxY if @y0 > bounceMaxY
  end

  set_speed if abs(@dx) + abs(@dy) < 0.3

end

def fadeToWhite
  noStroke
  fill(99, 30)  # fill(90, 100)
  rectMode(CORNER)
  rect(0, 0, width, height)
end

« 書籍 Built with Processing [改訂版] を買った (その2) | トップページ | ピックアップ: 起動大幅改善JRuby 1.1.2、YAMLシンボル処理は100倍以上, なぜオープン系開発者の間でMacへのシフトが急速に進んでいるのか, etc... »

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/184434/41368975

この記事へのトラックバック一覧です: 書籍 Built with Processing [改訂版] を買った (その3):

« 書籍 Built with Processing [改訂版] を買った (その2) | トップページ | ピックアップ: 起動大幅改善JRuby 1.1.2、YAMLシンボル処理は100倍以上, なぜオープン系開発者の間でMacへのシフトが急速に進んでいるのか, etc... »

mokuji

2013年12月
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        

google

  • twitter
  • __
  • _
    Googleボットチェッカー

合わせて読む

  • 合わせて読む
    フィードメーター - katoy: cocolog あわせて読みたい

リンク