在我的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/