为什么我的SKLabelNode总是在我的SKSpriteNode后面画,即使我在精灵之后添加它?
_startButton = [SKSpriteNode spriteNodeWithImageNamed:@"start@2x.png"];
_startButton.position = CGPointMake(self.frame.size.width/2,self.frame.size.height/2);
_startButton.name = @"start";
_startButton.zPosition = 1.0;
[self addChild:_startButton];
SKLabelNode *start = [SKLabelNode labelNodeWithFontNamed:@"Chalkduster"];
start.text = @"Start";
start.fontSize = 40;
start.fontColor = [SKColor whiteColor];
start.position = CGPointMake(self.size.width/2, self.size.height/2);
[self addChild:start];
答案 0 :(得分:4)
我很确定默认的zPosition是0,这意味着你的精灵(zPosition为1)将出现在标签的前面。尝试将SKLabelNode
zPosition设置为2.较大的正数会将项目放在数字较小的数字之上。
默认值为0.0。正z轴投射到 查看器使z值较大的节点更接近查看器。 呈现节点树时,每个节点的高度(绝对值) 计算坐标,然后渲染树中的所有节点 从最小z值到最大z值。如果多个节点共享 在相同的z位置,对这些节点进行排序,以便绘制父节点 在他们的孩子面前,兄弟姐妹按顺序呈现 它们出现在父母的子阵列中。处理命中测试 以相反的顺序。