在我的SpriteKit游戏中,除非应用程序完全退出,否则分数不会重置为零。当您转到游戏菜单,然后再次单击“播放”时,上一游戏的得分将继续。我用来更新分数的方法是:

if (person1.position.y < obstacle1Node.position.y) {
    staticScore++;
    scoreLabelNode.text = [NSString stringWithFormat:@"%ld", (long)staticScore];
}


每当障碍节点通过人节点时,分数就会更新。退出游戏场景时,我使用的代码是:

scoreLabelNode.text = [NSString stringWithFormat:@"0"];
scoreNumber = 0;

SKAction *wait = [SKAction waitForDuration:0.01];

[self runAction:wait completion:^{
    GameMenu *gameMenu = [GameMenu sceneWithSize:self.frame.size];
    SKTransition *transition = [SKTransition fadeWithDuration:1.0];
    [self.view presentScene:gameMenu transition:transition];
    [self removeAllActions];
    [self removeAllChildren];
}];


此代码用于主页和重启按钮。我不太确定为什么分数不会重置为零。以前,在我实现复杂的Game Over菜单之前,当游戏转到另一个场景然后回到GamePlay场景时,分数将重置为零。 scoreNumber被声明为NSInteger。任何帮助将不胜感激,在此先感谢您!

最佳答案

由于这个scoreNumber = 0;。您正在增加staticScore来更新和增加乐谱,但是在退出比赛场景时要设置scoreNumber = 0。您需要执行staticScore = 0来重置分数。

关于ios - 我的游戏分数不会重置为零,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32536213/

10-13 09:25