シェルの差分の作り方・発展†
このページでは、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・偽林檎で差分失敗のシェルも表示される方がありましたら、教えてください。 -- しお