2011/09/19(月) [n年前の日記]
#2 [prog] RubyでXMLファイルを処理したり
_Tiled Map Editor (Tiled Qt)
というマップエディタで保存したデータを Ruby で処理して扱いやすいテキストデータの形にしようかと。
_「Tiled Map Editor」の.tmxファイルを配列に変換 - 強火で進め という記事を参考にして、Ruby で書き直し。REXMLというモジュールが使えるらしい。
_XML処理 REXMLの使い方 - プログラムメモ
_REXML:RubyによるXML処理 - japan.internet.com
Tiled Qt の標準設定では、配置データ部分は zlib で圧縮したものを base64 に変換したデータらしいので、base64 でデコード、かつ、解凍するように。
_RubyでBase64 - 今日覚えたこと
_Rubyist Magazine - 標準添付ライブラリ紹介 【第 11 回】 zlib
Tiled Qt は、何も配置していない箇所を 0番として扱い、配置していくタイルセットの最初の番号を1番として扱っているらしい。タイルセットの最初の番号は0番にして、かつ、その番号は空セル(?)にしておきたいので、そのように変換して修正。と言っても配置セル番号が0より大きければ -1 するだけだったり。
とりあえず、それっぽい形で出力できた。
使ってる画像データとセル配置データの関連付けをどうしたものか。…手作業でテーブル作って対応させるのでもいいかな。そもそも、まずは出力したデータが正しく表示できるか確認するほうが先か…。、
_「Tiled Map Editor」の.tmxファイルを配列に変換 - 強火で進め という記事を参考にして、Ruby で書き直し。REXMLというモジュールが使えるらしい。
_XML処理 REXMLの使い方 - プログラムメモ
_REXML:RubyによるXML処理 - japan.internet.com
Tiled Qt の標準設定では、配置データ部分は zlib で圧縮したものを base64 に変換したデータらしいので、base64 でデコード、かつ、解凍するように。
_RubyでBase64 - 今日覚えたこと
_Rubyist Magazine - 標準添付ライブラリ紹介 【第 11 回】 zlib
Tiled Qt は、何も配置していない箇所を 0番として扱い、配置していくタイルセットの最初の番号を1番として扱っているらしい。タイルセットの最初の番号は0番にして、かつ、その番号は空セル(?)にしておきたいので、そのように変換して修正。と言っても配置セル番号が0より大きければ -1 するだけだったり。
とりあえず、それっぽい形で出力できた。
使ってる画像データとセル配置データの関連付けをどうしたものか。…手作業でテーブル作って対応させるのでもいいかな。そもそも、まずは出力したデータが正しく表示できるか確認するほうが先か…。、
[ ツッコむ ]
以上です。