RGSS2を知る(13)
Spriteはもともとそのクラスのオブジェクトを内部に持っていて、=付きのメソッドを呼ばれると引数の値を内部オブジェクトにコピーする、ということのようだ。
Bitmapクラスのrectはプロパティとしてではなくメソッドとマニュアルに書いてあり、設定機能はなく取得のみである。
これはメソッド呼び出し時にRectオブジェクトを生成している。
b = Bitmap.new(200,200) s = Sprite.new r = s.src_rect p r # => (0,0,0,0) s.bitmap = b p r # => (0,0,200,200) p r.equal?(s.src_rect) # => true c = s.color p c # => (0,0,0,0) s.color = Color.new(10,10,10) p c # => (10,10,10,255) p s.color.equal?(c) # => true p b.rect.equal?(b.rect) # => false
あー、すっきりした。