Jewel-mmo開発日記

RubyでMMORPGを作る過程を記録する日記。 Yokohama.rb 発起人。
2006-04-12

[MyGame]画像表示のサンプル

こうなった。

require 'mygame'
include MyGame

init_game

Image.new('ball.bmp').draw
loop_game

mygame.rb の最後に

include MyGame
init_game

と書いておくと、

require 'mygame'

Image.new('ball.bmp').draw
loop_game

こうなって HSP にかなり近づけるけど、これは反則か。

ちなみに上記は無理にシンプルに書くための極端な例。普通に書くとこう。

require 'mygame'
include MyGame

init_game

image = Image.new('ball.bmp')
loop_game do
  image.draw
end

__

なかださんからツッコミを頂いていた。

Image.draw('ball.bmp')
Image['ball.bmp'].draw

現状だと draw の引数は次のようになっていて(もちろん省略可能)、

Image#draw(screen, x, y)

第1引数は描画対象となるサーフェース、2,3は描画する座標。なので前者だとこの引数のスタイルに合わない。後者はこういう形をはじめてみたので違和感があるのですが……。こんなのあり?

追記:むむ、自分の言っていることがおかしかった。

draw_image('ball.bmp')

Image.draw('ball.bmp')

とするのに問題はないじゃないか。引数うんぬんの話は最初の draw_image も抱えていたことなわけで。

描画先のサーフェイスを指定するような込み入った場合は Image.new をすればいいのだから、ここではなかださんのおっしゃる Image.draw('ball.bmp') でよさそうだ。