SpriteKit不尊重zPosition?
addChild和zPosition对场景有什么影响?
我的意思是:假设我这样做
sprite1.zPosition = 50; sprite2.zPosition = 10; sprite3.zPosition = 30;
然后这样做
[self addChild:sprite1]; [self addChild:sprite2]; [self addChild:sprite3];
根据SpriteKit并考虑zPosition顺序,sprite1应该通过sprite2渲染到sprite3上,但是spriteKit会忽略它,并且在2上渲染3超过2。
我错过了什么吗?
如果他们有相同的父母,那将是真实的。 如果他们可以不同的父母,也考虑父母的z顺序。
场景渲染的标准行为遵循一对简单的规则:
- 父级在呈现其子级之前绘制其内容。
- 子项按它们在子数组中出现的顺序呈现。
考虑z位置时,以下是节点树的呈现方式:
- 计算每个节点的全局z位置。
- 节点按从最小z值到最大z值的顺序绘制。
- 如果两个节点共享相同的z值,则首先呈现祖先,并按子顺序呈现兄弟节点。
您可以在了解节点树的绘制顺序下找到它
在游戏视图控制器中,将ignoresSiblingOrder属性设置为false(或在objective-C中为NO)。
let skView = self.view as SKView skView.ignoresSiblingOrder = false