Z index KineticJS中的Z索引

Z index KineticJS中的Z索引,z-index,kineticjs,Z Index,Kineticjs,我试图用kineticJS编程,但我在Z索引管理方面遇到了一些问题 看起来你不能只设置你想要的任何范围的z索引,但是每个对象都有自己的z索引,你可以用其他对象来重新更改它们。如果你有两个对象,它们的z索引是0和1。你不能把它设为100或类似的数字。对吗 我的问题是,我正试图编写一个具有等距概述的小游戏。而且玩家的z指数应该比他所走的墙低,但当他在墙前时,z指数应该更高。但我不能让所有y坐标相同的墙都有相同的z索引,它们都有自己的自由z索引,这使得所有的墙都非常随机 例如,y坐标为5的墙具有z索引

我试图用kineticJS编程,但我在Z索引管理方面遇到了一些问题

看起来你不能只设置你想要的任何范围的z索引,但是每个对象都有自己的z索引,你可以用其他对象来重新更改它们。如果你有两个对象,它们的z索引是0和1。你不能把它设为100或类似的数字。对吗

我的问题是,我正试图编写一个具有等距概述的小游戏。而且玩家的z指数应该比他所走的墙低,但当他在墙前时,z指数应该更高。但我不能让所有y坐标相同的墙都有相同的z索引,它们都有自己的自由z索引,这使得所有的墙都非常随机

例如,y坐标为5的墙具有z索引5,而墙前面的玩家具有z索引6。但是在最后,所有的墙都得到了5-20的随机索引,玩家得到了一个随机索引,这使得创建这样一个游戏是完全不可能的


是否有其他方法来管理对象的z索引?我看到的唯一解决方案是使用唯一的z索引为我的地图的所有平铺创建一个包含2个隐藏对象的隐藏层,并编写一个脚本,使用墙、播放器或其他对象动态更改它们。但是必须有更好的方法来确保对象以正确的顺序显示?

我刚刚碰到了同样的问题。Z索引似乎只按顺序工作?因此,我对元素列表进行了排序,然后根据数组索引分配了它们的Z索引:

var sortedElements = _elements.slice();
sortedElements.sort(function(a, b) {
    var diff = a.getY() - b.getY();
    if ( diff !== 0 ) { return diff; }
    return a.getX() - b.getX();
} );
for ( var loop = 0, length = sortedElements.length; loop < length; loop++ ) {
    sortedElements[loop].setZIndex(loop);
}
var sortedElements=_elements.slice();
sortedElements.sort(功能(a,b){
var diff=a.getY()-b.getY();
如果(diff!==0){return diff;}
返回a.getX()-b.getX();
} );
for(var loop=0,length=sortedElements.length;loop
如果有人好奇或遇到同样的问题,我现在就找到了解决方案。我有一张40x40瓷砖的等距图,所以我得到了大约80种可能的深度。因为我不能用不同的Z指数来管理它,我现在制作了80个不同的动力学组,每个组都有自己的深度。我只需移动正确组中的所有对象和墙,当玩家在世界上移动时,在这些组之间移动他们。到目前为止,这是可行的,我想我会坚持这个解决方案。只是好奇是否还有其他解决方案。