我将要建立一个高级的二维上下行动角色扮演游戏。
它将是我的现有二维Flash RPG引擎(Adobe Air)的C# + XNA版本。
在Flash Pro中,我仅仅使用不同的MovieClips来处理不同的图层,但是我应该如何在使用XNA的C#中实现呢?
我想使用我制作的Flash地图编辑器的输出(地图数据文件)。
输出文件看起来像这样:
如何实现这个功能?还有,如何管理z排序,因为我希望能够在桥下行走或通过隧道驾车。(就像在这张图片中,船可以在桥下行驶。)
甚至有些楼梯可以到达下一层(切换图层)。
你们有任何想法或给我提供参考吗?
谢谢你们的回答!
编辑:
层次结构应如下所示:
它将是我的现有二维Flash RPG引擎(Adobe Air)的C# + XNA版本。
在Flash Pro中,我仅仅使用不同的MovieClips来处理不同的图层,但是我应该如何在使用XNA的C#中实现呢?
我想使用我制作的Flash地图编辑器的输出(地图数据文件)。
输出文件看起来像这样:
<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>
.
.
.
an so on...
where:
0 = Blank;
A = Gras;
B = Water;
我希望能够简单地遍历这些行,将它们保存在数组中,并将相应的精灵添加到特定的图层中,可能是这样:
Layers[2].Add( tile, x, y );
如何实现这个功能?还有,如何管理z排序,因为我希望能够在桥下行走或通过隧道驾车。(就像在这张图片中,船可以在桥下行驶。)
甚至有些楼梯可以到达下一层(切换图层)。
你们有任何想法或给我提供参考吗?
谢谢你们的回答!
编辑:
层次结构应如下所示:
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