0

我正在尝试使用 SKCropNode 类屏蔽节点。我在 SKCropNode 继承类中使用我自己的 init 方法来执行此操作:

- (id)init {
    self = [super init];

    if (self) {
        self.maskNode = [[SKSpriteNode alloc] initWithColor:[SKColor blackColor] size:(CGSize){50,50}];
        SKSpriteNode *contentNode = [[SKSpriteNode alloc] initWithImageNamed:@"Spaceship"];
        [self addChild: contentNode];

        self.userInteractionEnabled = YES;
    }
    return self;
}

它按预期工作: 矩形蒙版

现在,我想使用以下代码为场景和裁剪的宇宙飞船添加背景:

-(void)didMoveToView:(SKView *)view {
    /* Setup your scene here */

    //
    //background
    //
    SKSpriteNode * background = [SKSpriteNode spriteNodeWithImageNamed:@"background_game"];
    background.position = CGPointMake(CGRectGetMidX(view.frame), CGRectGetMidY(view.frame) - CGRectGetMinY(view.frame));

    [self addChild:background];

    TurretCropNode * cropNode = [[TurretCropNode alloc] init];
    cropNode.position = (CGPoint){view.frame.size.width/2,view.frame.size.height/2};
    [self addChild:cropNode];
}

我刚刚添加了几行并在开头添加了背​​景(裁剪的节点行保持不变)

这是我现在得到的:背景+蒙版

这是预期的行为吗?为什么裁剪的宇宙飞船消失了?

4

1 回答 1

0

我猜如下图是你指定的背景。你检查过你的节点zPosition吗?

如果你想在你的背景前面显示你的宇宙飞船,你必须将它调整zPosition为高于背景精灵的值。

于 2015-06-08T06:05:50.673 回答