PCが変わってるから比較できない。
なかなか困った状態ではあるのだが。
Athlon II X2 240e(800MHzにダウンクロック中)、GeForce8400GSにて。
WindowsXP、Ruby1.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