Spritekit GameOverlay
-
21-12-2019 - |
Pregunta
Si 2 objetos se golpean entre sí, debe aparecer una capa de GameOver, pero debe ser transparente.Eso significa que la escena del juego debe estar mostrando, con un juego transparente y la puntuación, etc. Puedo configurar.La escena por mí mismo, pero no sé cómo agregarlo en mi MyScene.H.
El código para la colisión de 2 objetos:
- (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
}
}
Solución
@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];
}
Ajuste la escala Y, X escala y alfa a su preferencia en consecuencia.
Otro remedio: Cree una imagen con cualquier software de edición de imágenes (GIMP, etc.) con fondo alfa y agréguelo a la escena
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow