Cocos2d iphone 将精灵移动到所有元素的顶部-Cocos2d

Cocos2d iphone 将精灵移动到所有元素的顶部-Cocos2d,cocos2d-iphone,ccsprite,z-order,Cocos2d Iphone,Ccsprite,Z Order,我知道如何根据 sprite.zOrder = 5; 但是,我有一个添加到CCScene的CCNode,我需要将该CCNode的子节点定位在CCScene中所有元素的上方。这可能吗?您可以手动设置vertexZ属性。它是隐藏的,因此您必须#导入CCNode\u Private.h。这将破坏父-子命令zOrder强制执行,但这可能是您想要的。 您还需要启用深度缓冲区CCSetupDepthFormat:@(GL\u depth\u component 24\u OES)首先将CCNode添加到场

我知道如何根据

sprite.zOrder = 5;

但是,我有一个添加到CCScene的CCNode,我需要将该CCNode的子节点定位在CCScene中所有元素的上方。这可能吗?

您可以手动设置
vertexZ
属性。它是隐藏的,因此您必须
#导入CCNode\u Private.h
。这将破坏父-子命令zOrder强制执行,但这可能是您想要的。
您还需要启用深度缓冲区
CCSetupDepthFormat:@(GL\u depth\u component 24\u OES)

首先将CCNode添加到场景中。它的所有子项都将“高于”你在后面添加的任何内容,即使使用相同的zOrder。不幸的是,这并不是那么简单。从技术上讲,节点是一个背景,其元素会发生变化。所以我猜这不是一个简单的方法。我可以找到一个解决方法,但我希望有些东西是可用的。这是不可能的,尽管根据我的经验,你也不需要一个“艰难”的方法,只要想想层次结构是做什么的,以及你是否可以很容易地编程。典型的情况是,节点应该跟随其父节点,但其z顺序必须不同。因此,您不将其设为子节点,前父节点只需通过向其发送一条objc消息(如adjustYourPositionToMine:…)将其位置应用于前子节点即可。。。在前一个父节点更新其位置(更新:应该足够)后执行此操作,然后完成。此外,不要进入vertexZ,除非您需要对每个节点的平局顺序进行精细控制,例如在等轴测游戏中