我正在使用SpriteKit。 对于具有多个SKSpriteNode部分的角色,我想控制每个角色的节点重叠。
例如,字符由音符和各部分的顺序组成,如下所示。
由于addChild
是从顶部开始按顺序完成的,因此头部显示在外观的顶部(由于有时会折叠,因此由zPosition强制使用了该头部)
Body (z = 100)
Leg (z = +1)
Hand (z = +2)
Head (z = +3)
如果它与其他字符重叠,我们将对其进行处理,以使下面的2D屏幕上具有一定的深度。
HumanA.zPosition = -humanA.position.y
HumanB.zPosition = -humanB.position.y
对于humanA.position.y=-101
,humanB.position.y=-100
,humanB在humanA之前。但是,humanA的头(z = -98)在humanB的腿(z = -99)之前。
理想情况下,如果humanB在humanA前面,我想使humanB的所有部分都在humanA之前。
请帮助我。
参考站点 https://developer.apple.com/documentation/spritekit/sknode
谢谢。
答案 0 :(得分:0)
将y位置乘以人体部位的数量:4
HumanA.zPosition = -humanA.position.y * 4
HumanB.zPosition = -humanB.position.y * 4
这种方式:
因此,一个人的整个部分将始终以相同的深度显示。