SpriteKit GameOverlay
-
21-12-2019 - |
Pergunta
Se 2 objetos acertar uns aos outros, um GameOver camada deve aparecer, mas ele deve ser transparente.Isso significa que, todo o Jogo de Cena deve mostrar, com uma transparente GameOver e a Pontuação etc.Eu posso config.a Cena por mim, mas eu não sei como adiciona-lo no meu MyScene.h.
O código para os 2 objetos de colisão :
- (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
}
}
Solução
@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];
}
ajustar a escala y, x escala e alfa de acordo com sua preferência de acordo.
Outro remédio:Criar uma imagem com qualquer software de edição de imagem (gimp, etc) com fundo alfa e adicioná-lo para a cena
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow