我有一个节点,在另一个节点的顶部添加了一个盒子的图片,上面有飞艇图像:
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秒调用一次这些代码。但标签只出现在其中一些标签上,其他标签只是盒子,没有标签。我还添加了一个淡出动作,用于敲击盒子。但是当淡出动画进行时,没有文本的框上的标签开始出现。关于标签为什么没有出现在初始化中的任何想法?感谢。
答案 0 :(得分:0)
经过一番研究后,我发现iOS 9的Sprite Kit处理的默认z位置与iOS 8略有不同。因此添加此行会使所有标签出现:
label.zPosition = box.zPosition + 1