0
Я новичок в SpriteKit
game dev. В моей игре, когда персонаж коснется врага, он покажет игру поверх сцены и перезапустит ее.Double Tap делает краш SpriteKit Game
Однако после игры над сценой, двойная игра делает крушение приложения. Вот мои коды в MainGameScene.
- (void)gameOver
{
GameOver *over = [[GameOver alloc] initWithSize:self.size];
SKTransition *trans = [SKTransition flipHorizontalWithDuration:0.5];
[self.view presentScene:over transition:trans];
}
И вот сцена GameOver.
- (instancetype)initWithSize:(CGSize)size
{
self = [super initWithSize:size];
{
SKLabelNode *lblGameOver = [[SKLabelNode alloc] initWithFontNamed:@"Chalkduster"];
lblGameOver.text = @"Game Over";
lblGameOver.position = CGPointMake(self.size.width/2, self.size.height/2);
lblGameOver.fontSize = 35;
lblGameOver.fontColor = [UIColor whiteColor];
lblGameOver.zPosition = 2;
[self addChild:lblGameOver];
}
return self;
}
- (void)didMoveToView:(SKView *)view
{
[super didMoveToView:self.view];
UITapGestureRecognizer *tapper = [[UITapGestureRecognizer alloc]
initWithTarget:self action:@selector(newGame)];
[view addGestureRecognizer:tapper];
}
- (void)newGame
{
GameScene * scene = [[GameScene alloc] initWithSize:self.size];
SKTransition *trans = [SKTransition flipHorizontalWithDuration:0.5];
[self.view presentScene:scene transition:trans];
}
Это делает крушение моего приложения, когда я дважды касаюсь новой сцены игры. Сообщение об ошибке
Thread 1 : EXC_BAD_ACCESS (code=1,address=0x0)
Как я могу это исправить?
Это было чувство, пока я играл с диам жестов, но моя догадка, что вы никогда не удалить старую водопроводную жест с точки зрения и пытается для вызова метода, который исчез. Возможно, вам понадобится создать свойство для этого жестов tap и удалить его из представления, прежде чем представить следующую сцену. –