RGSS2を知る(24)

微妙な話だが、freezeとdup/cloneについて。

b = Bitmap.new(100,100)
p b.frozen? # => false
b.freeze
p b.frozen? # => true

b.set_pixel(1,1,Color.new(100,1001,00))

b = b.clone
p b.frozen? # => true
b = b.dup
p b.frozen? # => false

s = Sprite.new
s.bitmap = b

loop do
  Graphics.update
end

freeze/frozen?はObjectクラスのメソッドなので呼ぶことはできるが、set_pixelがブロックされるわけではないようだ。
まあ、ゲーム用ライブラリの画像データでセキュリティとか考える必要など無いだろう。
cloneはきちんとfreezeの情報もコピーされている。
DXRubyは面倒だったからこのへんいい加減になってしまっているが、どうしたもんだろう。