如果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
}
}
答案 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等)创建图像并将其添加到场景