シェルの差分の作り方・発展

このページでは、MacOSX用伺かベースウェア・偽林檎対応の差分の指定Tipsを書いています。
前提として、MacOSX・偽林檎で里々を用いて説明します。

偽林檎では、差分の指定の方法によって、サーフェスがきちんと表示されない事があります。
実際に以下で説明する事柄は、Windows・SSP上ではどれもきちんと表示されていますが、偽林檎上では差分のみ表示されているシェルがあります。
それは偽林檎上でどのような状況で発生するのか、またどのような手段でふせげるのかをまとめました。

0.初めに

例として、Surface Man Advanceを用意しました。
このゴーストを使って説明しています。

&attachref(./surface_advance.nar);

AdvenceでのSurface Manは、サーフェス指定の桁が1・2・3桁の辞書を持っています。
腹のしましまをつつくと、辞書の切替えを聞いてきますので、説明に沿って切替えてください。

1.差分なしシェル

一番最初に起動させたままのシェル、マスターシェルです。
このシェル(shell/master)のsurfaces.txtでsurface IDは2桁です。

surface01
{
collision0,9,153,141,182,Change
}

ですがマスターシェルでは、サーフェス指定の桁が1桁・2桁の辞書とも、特に不都合が見当たることはありません。

問題は差分失敗のシェル(shell/difference)です

2.差分失敗シェル

このシェルでは、1桁・2桁の辞書とも生首状態でしか差分が表示されません。
surfaces.txtのelement中のPNGファイルの指定もきちんとあっています。

surface01
{
element0,overlay,surface00.png,0,0
element1,overlay,surface01.png,20,20
collision0,9,153,141,182,Change
}

1桁の辞書で表示されないのは桁数が足りないからかな、と思いますが、2桁の辞書まで表示されないのは不思議ですよね。

&attachref(./i_sa01.gif);

失敗理由の説明の前に、差分成功のシェル(shell/better)を見てください。

3.差分成功シェル

このシェルで違うところは、surfaces.txtのsurface IDの桁です。
差分なしのシェルと差分失敗のシェルではsurface IDは2桁でしたが、差分成功1のシェルではsurface IDは1桁です。

surface1
{
element0,overlay,surface00.png,0,0
element1,overlay,surface01.png,20,20
collision0,9,153,141,182,Change
}

そしてこのシェルでは1桁・2桁の辞書ともきちんとサーフェスが表示されます。
このことから、偽林檎ではsurfaces.txt上で、0から始まるsurface IDはきちんと表示されないことが予測されます。

&attachref(./i_sa02.png);

個人的な推測ですが、辞書上ではサーフェス指定(0*)は(*)に変換されてsurfaces.txtでマッチするサーフェス指定を探しますが、surfaces.txt上ではsurface0*がsurface*に変換されないので、surfaces.txtを無視して、PNGファイルの名前でマッチするものを表示するからではないか、と考えます。

補強として、差分 サーフェス指定3桁のシェル(shell/three)を説明します。
サーフェス指定の桁が3桁の辞書に切り替えてください。

4.差分 サーフェス指定3桁シェル

このシェルでSurface Manをつつき回すと、「Oops!」のセリフの時に生首状態になります。
これは、この表情はsurface IDが002、0で始まる番号だからです。
「Whoa.」のセリフの時の笑い顔はsurface IDが102のため、きちんと表示されます。

&attachref(./i_sa03.gif);

最後に、安全策として差分リネームのシェル(shell/rename)に触れます。
辞書はサーフェス指定の桁が1桁か2桁の辞書に戻しておいてください。

5.差分リネームシェル

安全策とは、差分にsurface*.pngという名前をつけないことです。
このシェルで言えば、差分にはelement*.pngという名前がついています。もちろん名前はなんでもかまいません。
なぜリネームするのかと言えば、もしベースウェアがsurfaces.txtを理解せず、PNGファイルを直接拾ったとしたら、やはり生首状態で表示されます。
同じ不具合ならば、surface0の無表情の方がまだマシです。
surfaces.txtのelementできちんとPNGファイルさえ指定してやれば、何の問題もありません。


以上でシェルの差分の作り方は終わりです。
お疲れさまでした。

補足

もしころぺたを導入済みであれば、差分失敗のシェル(shell/difference)を開いてみてください。
たぶん差分失敗のシェル(shell/difference)はsurfaces01とsurfaces02が妙な表示な上に、個別設定しようとすると、"基本画像"と"Element"が選択できないはずです。

&attachref(./i_sa04.gif);

こんなところでもsurface IDの0*エラーに気付くことができるので、WindowsでMac環境を試せない方も差分だけの表示はふせぐことができます。

コメント

  • もし、同じMacOSX・偽林檎で差分失敗のシェルも表示される方がありましたら、教えてください。 -- しお 2007-02-04 (日) 21:11:42


添付ファイル: filei_sa04.gif 1422件 [詳細] filei_sa03.gif 1359件 [詳細] filei_sa02.png 1265件 [詳細] filei_sa01.gif 1304件 [詳細] filesurface_advance.nar 1636件 [詳細]

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2007-02-04 (日) 21:22:45