Ios8 双击使游戏崩溃
我是Ios8 双击使游戏崩溃,ios8,sprite-kit,skscene,Ios8,Sprite Kit,Skscene,我是SpriteKit游戏开发新手。 在我的游戏中,当角色触摸敌人时,它会在场景上方显示游戏并重新启动 然而,游戏结束后的场景显示,游戏中的double正在使应用程序崩溃。 这是我在主游戏场景中的代码 - (void)gameOver { GameOver *over = [[GameOver alloc] initWithSize:self.size]; SKTransition *trans = [SKTransition flipHorizontalWithDuration
SpriteKit
游戏开发新手。
在我的游戏中,当角色触摸敌人时,它会在场景上方显示游戏并重新启动
然而,游戏结束后的场景显示,游戏中的double正在使应用程序崩溃。
这是我在主游戏场景中的代码
- (void)gameOver
{
GameOver *over = [[GameOver alloc] initWithSize:self.size];
SKTransition *trans = [SKTransition flipHorizontalWithDuration:0.5];
[self.view presentScene:over transition:trans];
}
这是游戏结束的场景
- (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)
我如何修复它?在您的didMoveToView方法中尝试以下操作:
UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(newGame)];
[self.view addGestureRecognizer:tapRecognizer];
tapRecognizer.numberOfTapsRequired = 2; // 1 for a single tap or 2 for a double tap
有一段时间我一直在玩点击手势,但我最好的猜测是,你从未从视图中删除旧的点击手势,它试图调用一个已经消失的方法。在呈现下一个场景之前,可能需要为该轻触手势创建属性,并将其从视图中删除。