SKLabelNode有时会在iOS 9.2

时间:2015-12-13 03:45:17

标签: objective-c sprite-kit sklabelnode

我有一个节点,在另一个节点的顶​​部添加了一个盒子的图片,上面有飞艇图像:

SKSpriteNode *box = [SKSpriteNode spriteNodeWithImageNamed:@"Box"];
box.position = airshipNode.position;
box.physicsBody = [SKPhysicBody bodyWithRectangleOfSize:box.size];
box.physicsBody.categoryBitMask = 1;
box.physicsBody.collisionBitMask = 0;
box.zPosition = airship.zPosition - 1;
[box setScale:0.7];

现在我在方框顶部添加了一个标签:

SKLabelNode *label = [SKLabelNode labelNodeWithFontNamed:@"Arial"];
CGPoint *position = box.centerRect.origin;
position.y -= 55;
label.position = box.centerRect.origin;
label.text = @"a";
label.fontSize = 70;
label.fontColor = [SKColor blackColor];

然后我将标签贴在盒子上,然后将盒子放到主场景上:

[box addChild:label];
// self is the main scene.
[self addChild:box];

然后我每隔1秒调用一次这些代码。但标签只出现在其中一些标签上,其他标签只是盒子,没有标签。我还添加了一个淡出动作,用于敲击盒子。但是当淡出动画进行时,没有文本的框上的标签开始出现。关于标签为什么没有出现在初始化中的任何想法?感谢。

1 个答案:

答案 0 :(得分:0)

经过一番研究后,我发现iOS 9的Sprite Kit处理的默认z位置与iOS 8略有不同。因此添加此行会使所有标签出现:

label.zPosition = box.zPosition + 1