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は面倒だったからこのへんいい加減になってしまっているが、どうしたもんだろう。