SpriteKit GameOverlay

时间:2014-04-11 14:30:10

标签: objective-c interface xcode5 sprite-kit overlay

如果2个物体相互碰撞,则应出现GameOver图层,但它应该是透明的。这意味着,整个游戏场景应该显示,具有透明的GameOver和分数等。 我可以配置。我自己的场景,但我不知道如何在我的MyScene.h中添加它。

2个对象碰撞的代码:

 - (void)didBeginContact:(SKPhysicsContact *)contact

{     SKPhysicsBody * firstBody,* secondBody;

if (contact.bodyA.categoryBitMask < contact.bodyB.categoryBitMask)
{
    firstBody = contact.bodyA;
    secondBody = contact.bodyB;
}
else
{
    firstBody = contact.bodyB;
    secondBody = contact.bodyA;
}

if ((firstBody.categoryBitMask & StoneCategory) != 0 &&
    (secondBody.categoryBitMask & HumanCategory) != 0)
{
    // Here should be some code
}

}

1 个答案:

答案 0 :(得分:0)

@interface yourScene()
@property (strong, nonatomic) SKSpriteNode *scoreMenu;
@end

...

if ((firstBody.categoryBitMask & StoneCategory) != 0 &&
(secondBody.categoryBitMask & HumanCategory) != 0)
{
    self.scoreMenu = [SKSpriteNode spriteNodeWithImageNamed:@"ScoreMenuPicture.png"];
    self.scoreMenu.position = CGPointMake(CGRectGetMidX(self.frame),     CGRectGetMidY(self.frame));
    self.scoreMenu.name = @"scoreMenu";
    self.scoreMenu.yScale = 0.7;
    self.scoreMenu.xScale = 0.5;
    self.scoreMenu.alpha = 0.7;
    [self addChild:self.scoreMenu];
}

相应地根据您的偏好调整y比例,x比例和alpha。

另一种补救措施: 使用具有alpha背景的任何图像编辑软件(gimp等)创建图像并将其添加到场景