我的游戏区域充当半透明背景,可以在其上面添加一些东西。我将背景的alpha设置为0.7(因为我想看到它下面)
现在,我创建了一堆精灵节点,它们是这个半透明背景的子节点,它继承了父节点(背景)的alpha。无论如何我可以阻止它吗?
代码示例:
_cardAreaBackground = [SKSpriteNode spriteNodeWithImageNamed:@"background_cardarea"];
[_cardAreaBackground setName:kCardAreaBackgroundKeyword];
[_cardAreaBackground setAnchorPoint:CGPointZero];
[_cardAreaBackground setPosition:CGPointMake([self determineCardAreaBackgroundX], [_infoBarBackground size].height)];
[_cardAreaBackground setZPosition:10];
[_cardAreaBackground setAlpha:0.3];
[self addChild:_cardAreaBackground];
SKSpriteNode *drawPile = [SKSpriteNode spriteNodeWithImageNamed:@"card_back"];
[drawPile setName:kCardAreaBackgroundKeyword];
[drawPile setAnchorPoint:CGPointZero];
[drawPile setPosition:CGPointMake( 120 + 1954, 10 )];
[drawPile setZPosition:11];
[drawPile setScale:0.3125];
[_cardAreaBackground addChild:drawPile];
你可以看到我上面要做的事情。如果这不是正确的方法,请告诉我。我这样做的原因我实际上在这个“卡片背景区域”中有3个部分,用户可以在我想要在那里看到不同的东西之间滑动。
答案 0 :(得分:6)
而不是设置alpha尝试使用alpha设置背景颜色,它应该有效 -
[_cardAreaBackground setBackgroundColor:[[UIColor whiteColor] colorWithAlphaComponent:0.3]]
您可以提供所需的颜色,而不是[UIColor whiteColor]。
答案 1 :(得分:2)
你可以简单地制作背景以及孩子在另一个精灵上精灵制作孩子。因此,背景不会影响它上面的节点。
_cardTable = [SKNode new];
_cardAreaBackground = [SKSpriteNode spriteNodeWithImageNamed:@"background_cardarea"];
[_cardAreaBackground setName:kCardAreaBackgroundKeyword];
[_cardAreaBackground setAnchorPoint:CGPointZero];
[_cardAreaBackground setZPosition:10];
[_cardAreaBackground setAlpha:0.3];
[cardTable addChild:_cardAreaBackground];
SKSpriteNode *drawPile = [SKSpriteNode spriteNodeWithImageNamed:@"card_back"];
[drawPile setName:kCardAreaBackgroundKeyword];
[drawPile setAnchorPoint:CGPointZero];
[drawPile setPosition:CGPointMake( 120 + 1954, 10 )];
[drawPile setZPosition:11];
[drawPile setScale:0.3125];
[cardTable addChild:drawPile];
[cardTable setPosition:CGPointMake([self determineCardAreaBackgroundX], [_infoBarBackground size].height)];
[self addChild:cardTable];