高度な 2D アップダウン RPG を作成します。
これは、既存の 2D Flash RPG エンジン (Adobe Air) の C# + XNA バージョンになります。
Flash Pro では、レイヤーごとに異なる MovieClip を使用しましたが、XNA を使用して C# でそれを実現するにはどうすればよいでしょうか?
作成した Flash Map Editor からの出力 ( map-data-file ) を使用できるようにしたいと考えています。
出力ファイルは次のようになります。
<layer1>
0.0.0.A.A.A.A.B.B.A.A.0.0.0
0.0.0.A.A.A.A.B.B.B.A.A.0.0
0.0.A.A.A.B.B.B.B.B.B.A.0.0
0.A.A.A.A.B.B.B.B.B.B.A.A.0
0.A.A.A.A.B.B.B.B.B.B.A.A.0
0.A.A.A.A.A.B.B.B.B.B:B.A.0
0.0.A.A.A.A.B.B.B.B.A.A.A.0
0.0.A.A.A.A.A.B.B.A.A.A.0.0
0.0.0.A.A.A.A.B.B.A.A.0.0.0
<layer2>
. . . . .
. . .
.
.
<layer3>
.
.
.
など...
どこ:
0 = Blank;
A = Gras;
B = Water;
したがって、これらの行を単純にループし、配列に保存して、対応するスプライトを特定のレイヤーに追加します。おそらく次のようになります。
Layers[2].Add( tile, x, y );
どうすればそれを実現できますか? また、どうすれば z ソートを管理できますか。さらに、橋の下を歩いたり、トンネルを通り抜けたりできるようにしたいのです。
(この画像のように、橋の下を航行している船があるかもしれません)
または次の段階に到達するための階段(レイヤーの切り替え)
皆さんは私に何かアイデアや参考文献を持っていますか?
あなたのすべての答えのためのthx!
編集:
レイヤー hirachy は次のようになります。
map{
Layer[0] { // "bg"
xyArray{ .... }
}
Layer[1] { // "static" - bottom part / stairs of the bridge
xyArray{ .... }
}
Layer[2] { // "items"
xyArray{ .... }
}
Layer[3] { // "player"
xyArray{ .... }
}
Layer[4] { // "static2" - top part of bridge
xyArray{ .... }
}
}
// if the player is ON a tile that hat a Stair funktion, the "player" layer will be
// moved on top of the "static2" layer, so 'Layer[3].Z = 4;' and 'Layer[4].Z = 3;'
// like i showed in the Switch funktion up there