Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 as3:容器、深度和墙壁?等距_Actionscript 3_3d_Containers_Depth_Isometric - Fatal编程技术网

Actionscript 3 as3:容器、深度和墙壁?等距

Actionscript 3 as3:容器、深度和墙壁?等距,actionscript-3,3d,containers,depth,isometric,Actionscript 3,3d,Containers,Depth,Isometric,我应该如何着手(这是一个等距游戏)使深度合乎逻辑 例如,如果一个农民高于另一个农民(也就是说,y值较低,但他较高),我如何使他看起来像是在他下面的农民后面 墙壁也是如此 我想让角色看起来像是在墙后面,如果他们走了。。。在它后面 但是如果他们在墙前面,就要在墙前面 等轴测透视图使代码更加混乱 我想要的是一个很好的比较,就像旧的BeateMap游戏(比如TMNT),你可以在某种程度上左右行走,上下行走(比如在路上)。在这些道路的中间,有时有像桶之类的物体。你可以在它上面和后面走,也可以在它下面和前面

我应该如何着手(这是一个等距游戏)使深度合乎逻辑

例如,如果一个农民高于另一个农民(也就是说,y值较低,但他较高),我如何使他看起来像是在他下面的农民后面

墙壁也是如此

我想让角色看起来像是在墙后面,如果他们走了。。。在它后面

但是如果他们在墙前面,就要在墙前面

等轴测透视图使代码更加混乱

我想要的是一个很好的比较,就像旧的BeateMap游戏(比如TMNT),你可以在某种程度上左右行走,上下行走(比如在路上)。在这些道路的中间,有时有像桶之类的物体。你可以在它上面和后面走,也可以在它下面和前面走

或者类似的事情


你可以看到4个字符。角色可以在彼此前面(如果他们站在后面)。

我不确定ActionScript中有哪些不同的方式影响元素的绘制顺序。一个典型的想法是Z索引,它告诉图形引擎首先绘制什么。在AS3中,它可以通过电影剪辑的ChildIndex进行模拟,请参见

但也可以参见这篇文章,了解堆栈中movieclips的堆叠顺序和深度参数,以及AS2中的swapDepths()方法,以及这些方法之间的关系


一个非常粗糙的想法(如果这是可能的话)是有一个电影唇或堆栈阵列,作为图像的层,每层大约有一个瓷砖深。然后将对象和角色分配到对应于其y变量的层中,并将层movieclips作为父movieclip的子级,并安排childindex,以使最后面的层优先绘制,最前面的层最后绘制

移动角色时,如果y坐标变化超出当前图层的范围,请重新指定到上方或下方的一个图层

根据y坐标对同一层中的对象进行排序



也许仅仅根据y坐标对对象进行排序就足够了。多个层可以通过使用较小的列表进行排序来加快速度,但对于AS的特定情况,这也可能是错误的。

关于小层的有趣想法。。但我不知道如何实现这一点。