そこで、さまざまなサイズのタイル シートを使用するゲームがあり、私の狂気に対応する拡張レベル ローダーを作成することにしました。
私が見る限り、レイヤーのサイズとタイプが保存される唯一の場所は、タグの下の .oep プロジェクト ファイルです。
<LayerDefinitions>
<LayerDefinition xsi:type="GridLayerDefinition">
<Name>Solids</Name>
<Grid>
<Width>24</Width>
<Height>24</Height>
</Grid>
<ScrollFactor>
<X>1</X>
<Y>1</Y>
</ScrollFactor>
<Color A="255" R="0" G="0" B="0" />
<ExportMode>Rectangles</ExportMode>
</LayerDefinition>
グリッドの名前、幅、高さを抽出するのは簡単です。本当に必要なのは、LayerDefinition タグに格納されている TYPE です。
<LayerDefinition xsi:type="GridLayerDefinition">
問題は、@xsi:type 属性を取得しようとすると、コロンが原因でエラーが発生することです。どうすればこれを回避できますか? .xsi:type 属性を取得するにはどうすればよいですか? そして、レイヤーのタイプは、私が見ていない別の場所に保存されていますか? 現在のインポート コード:
private function loadProject():void
{
var curProject:XML = FP.getXML(TESTPROJECT);
var entry:XML;
var counter:uint = 0;
trace("Loading project");
// trace(curProject.*);
for each (entry in curProject.LayerDefinitions)
{
trace ("Grid type is: " + entry.@xsi:type);
trace ("Grid is: " + entry.LayerDefinition.Name);
}
}
エラーが発生します:
\src\levelLoader.as(51): col: 41 Error: Syntax error: expecting rightparen before colon.