* シェルの差分の作り方・発展 [#a6dc7f79] このページでは、MacOSX用伺かベースウェア・偽林檎対応の差分の指定Tipsを書いています。~ 前提として、MacOSX・偽林檎で里々を用いて説明します。~ ~ 偽林檎では、差分の指定の方法によって、サーフェスがきちんと表示されない事があります。~ 実際に以下で説明する事柄は、Windows・SSP上ではどれもきちんと表示されていますが、偽林檎上では差分のみ表示されているシェルがあります。~ それは偽林檎上でどのような状況で発生するのか、またどのような手段でふせげるのかをまとめました。~ ~ ** 0.初めに [#qa1c1e8c] 例として、Surface Man Advanceを用意しました。~ このゴーストを使って説明しています。~ &attachref(./surface_advance.nar);~ ~ AdvenceでのSurface Manは、サーフェス指定の桁が1・2・3桁の辞書を持っています。~ 腹のしましまをつつくと、辞書の切替えを聞いてきますので、説明に沿って切替えてください。~ ~ ** 1.差分なしシェル [#qa1c1e8c] 一番最初に起動させたままのシェル、マスターシェルです。~ このシェル(shell/master)のsurfaces.txtでsurface IDは2桁です。 surface01 { collision0,9,153,141,182,Change } ですがマスターシェルでは、サーフェス指定の桁が1桁・2桁の辞書とも、特に不都合が見当たることはありません。~ ~ 問題は差分失敗のシェル(shell/difference)です~ ~ ** 2.差分失敗シェル [#qa1c1e8c] このシェルでは、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.差分成功シェル [#qa1c1e8c] このシェルで違うところは、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桁シェル [#qa1c1e8c] このシェルでSurface Manをつつき回すと、「Oops!」のセリフの時に生首状態になります。~ これは、この表情はsurface IDが002、0で始まる番号だからです。~ 「Whoa.」のセリフの時の笑い顔はsurface IDが102のため、きちんと表示されます。~ ~ &attachref(./i_sa03.gif);~ ~ 最後に、安全策として差分リネームのシェル(shell/rename)に触れます。~ 辞書はサーフェス指定の桁が1桁か2桁の辞書に戻しておいてください。~ ~ ** 5.差分リネームシェル [#qa1c1e8c] 安全策とは、差分にsurface*.pngという名前をつけないことです。~ このシェルで言えば、差分にはelement*.pngという名前がついています。もちろん名前はなんでもかまいません。~ なぜリネームするのかと言えば、もしベースウェアがsurfaces.txtを理解せず、PNGファイルを直接拾ったとしたら、やはり生首状態で表示されます。~ 同じ不具合ならば、まだsurface0の無表情の方がまだマシです。~ 同じ不具合ならば、surface0の無表情の方がまだマシです。~ surfaces.txtのelementできちんとPNGファイルさえ指定してやれば、何の問題もありません。~ ~ ~ 以上でシェルの差分の作り方は終わりです。~ お疲れさまでした。~ ~ ** 補足 [#qa1c1e8c] もしころぺたを導入済みであれば、差分失敗のシェル(shell/difference)を開いてみてください。~ たぶん差分失敗のシェル(shell/difference)はsurfaces01とsurfaces02が妙な表示な上に、個別設定しようとすると、"基本画像"と"Element"が選択できないはずです。~ ~ &attachref(./i_sa04.gif);~ ~ こんなところでもsurface IDの0*エラーに気付くことができるので、WindowsでMac環境を試せない方も差分だけの表示はふせぐことができます。~ ~ **コメント [#v73fcc6a] - もし、同じMacOSX・偽林檎で差分失敗のシェルも表示される方がありましたら、教えてください。 -- [[しお]] &new{2007-02-04 (日) 21:11:42}; #comment(below)