SpriteKit SKCropNode 掩盖一切
SpriteKit SKCropNode Masks everything
我正在尝试使用 SKCropNode class 屏蔽节点。我在 SKCropNode 中使用我自己的 init 方法来继承 class:
- (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];
}
我刚刚添加了几行,在开头添加了背景(裁剪的节点行保持不变)
这是我现在得到的:
这是预期的行为吗?为什么裁剪飞船消失了?
我猜下图就是你指定的背景。你检查过你的节点了吗zPosition
?
如果你想在你的背景前面显示你的宇宙飞船,你将不得不调整 zPosition
使其高于背景精灵。
我正在尝试使用 SKCropNode class 屏蔽节点。我在 SKCropNode 中使用我自己的 init 方法来继承 class:
- (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];
}
我刚刚添加了几行,在开头添加了背景(裁剪的节点行保持不变)
这是我现在得到的:
这是预期的行为吗?为什么裁剪飞船消失了?
我猜下图就是你指定的背景。你检查过你的节点了吗zPosition
?
如果你想在你的背景前面显示你的宇宙飞船,你将不得不调整 zPosition
使其高于背景精灵。