注意:ハイコンテキストな話題なので、裏の文脈が読み取れないと答えにくい質問かなと思っています
ゲーム開発において、ソースコードレベルで定義する必要のないものを設定ファイルとしてXMLフォーマットの定義を試みています。
構造が単純なものについての定義は問題ないと感じています。
例:画像にidをつける
xml
1<image id="block" src="block.png" />
例:スプライトを定義する
xml
1<sprite id="block" image="block" pivot="center-bottom" />
例:ゲーム要素(エンティティ)を定義する
xml
1<entity id="block"> 2 <view> 3 <view-sprite sprite="block" /> 4 </view> 5 <body> 6 <body-box x="0" y="0" width="100" height="100" pivot="center-bottom" /> 7 </body> 8</entity>
しかし、ゲーム要素(エンティティ)の例で、動的にパラメータを与える必要があるパターンがあります。
例えば、上の例で、<sprite>
、<body-box>
のサイズを動的に与えることが出来るパターンで、なんとか定義方法を設計した場合、以下の様なパターンしか思いつけていません。
xml
1<entity id="block"> 2 <parameters> 3 <parameter name="width" type="int" /> 4 <parameter name="height" type="int" /> 5 </parameters> 6 <view> 7 <view-sprite sprite="block" width="$width" height="$height" /> 8 </view> 9 <body> 10 <!-- 物理ボディ(物理演算用) --> 11 <body-box x="0" y="0" width="${width}" height="${height - 10}" /> 12 </body> 13</entity>
上の例では、"block"
という<entity>
がwidth
とheight
というパラメータを整数で受け付けて、<view-sprite>
と<body-box>
に渡しています。
<body-box>
では、height
から「10を引く」という計算を行っていますが、ここでheight="${height - 10}"
という表現が出てきてしまっています。
これでは、このデータを駆動させるエンジン側で、計算式を解析する必要が出てしまい、XML書式チェックだけでなく、そのプロパティの中身の書式のチェックも必要になり、シンプルではないセンスの無い仕様のように感じてしまいます。
この計算に関しては、Polymerのcomputed propertyのように、計算そのものを実装に逃がした方がシンプルでしょうか?
何かセンスの良い解決方法はないでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/12/04 03:04
2015/12/04 04:30 編集
2015/12/04 06:35
2015/12/09 00:26