PCが変わってるから比較できない。

なかなか困った状態ではあるのだが。

Athlon II X2 240e(800MHzにダウンクロック中)、GeForce8400GSにて。
WindowsXPRuby1.9.1、DXRuby1.0.9、DXRubyFramework0.0.3(未公開)。

require "dxruby"
require "dxrubyfw"

class Ruby < Sprite
  MAX_X = 639 - 32
  MAX_Y = 479 - 32

  # Imageオブジェクトを作成
  @@image = Image.load("ruby.png")

  # 初期化メソッド
  def initialize
    self.x = rand(MAX_X) + 1
    self.y = rand(MAX_Y) + 1
    self.dx = rand(2) * 2 - 1
    self.dy = rand(2) * 2 - 1
    self.image = @@image
    self.range = [1, 1, MAX_X - 1, MAX_Y - 1]
    self.call_update_flag = false
  end

  # 設定範囲から出た場合に呼ばれる
  def out
    if self.x <= 0 or MAX_X <= self.x
      self.dx = -self.dx
    end
    if self.y <= 0 or MAX_Y <= self.y
      self.dy = -self.dy
    end
  end
end

# Sprite オブジェクトの配列を生成する。
sprites = Array.new(12000){ Ruby.new }

font = Font.new(32)

# ウィンドウのキャプションを設定する。 
Window.caption = "Sprites"

# fpsを設定する。
Window.fps = 60

# メインループ。
# ウィンドウが閉じられた場合は自動的に終了する。
# 画面は毎フレームリセットされる。
Window.loop do
  # ESC キーが押された場合終了する。
  break if Input.keyPush?(K_ESCAPE)

  Sprite.update(sprites)
  Window.drawSprite(sprites)

  Window.drawFont(0,0,Window.fps.to_s + " fps", font)
  Window.drawFont(0,40,sprites.size.to_s + " objects", font)
  Window.drawFont(0,80,Window.getLoad.to_i.to_s + " %", font)
end