RGSS2を知る(27)
マーシャル関連。とりあえずColorを。
open("c:\\test.txt","w") do |fh| fh.write(Marshal.dump(Color.new(1,2,3,4))) end
04 08 75 3A 0D 0A 43 6F 6C 6F 72 25 00 00 00 00 00 00 F0 3F 00 00 00 00 00 00 00 40 00 00 00 00 00 00 08 40 00 00 00 00 00 00 10 40
色のデータ1つにつき8Byte。これはdouble型をそのまま吐き出していると思われる。
_loadメソッドの引数の文字列をdouble型を並べた構造体にmemcpyするように作ってみた。
require 'freergss' open("c:\\test.txt") do |fh| p Marshal.load(fh.read) # => (1.000000, 2.000000, 3.000000, 4.000000) end
OK。
って、テキストで書いて読んでるからうまくいってるけど0D0Aとかおるやんけw
ほんとはバイナリで書いて読まないとあかん。