2007-03-03
[MyGame]キーワード引数を導入
プリミティブクラスの API をキーワード引数っぽく変更。 内部的にはかなり大きな変更になってしまった。
これまでは、例えば画像クラスを作る場合、以下のように new の引数でスクリーン座標を渡すことができた。
image = Image.new(filename, x, y)
x, y は省略できる。 でもインスタンス生成時には x, y 以外のいろんなパラメータを渡したいので、 new の引数が一部の属性に固定されているのは辛い。
今回の仕様変更で、次のような書き方が可能になった。
image = Image.new(filename, :x => x, :y => y) image = Image.new(filename, :alpha => 128, scale => 2.0, angle => 90)
オプションはこのようにハッシュを使って渡す。 フォントの場合は第 1 引数が文字列で、その後ろにオプションを渡す。
font = Font.new("Hello", :size => 20, :color => [255, 0, 0])
テストプログラムをいろいろ書いてみたが、やっぱりこのほうが便利なので、たぶんこれを採用する。