我的游戏中的分数不会重置为零

时间:2015-09-12 07:09:36

标签: ios objective-c sprite-kit

在我的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];
}];

此代码用于主页和重启按钮。我不太清楚为什么分数不会重置为零。以前,在我实施复杂的游戏结束菜单之前,当游戏进入另一个场景然后回到GamePlay场景时,分数将重置为零。 scoreNumber被声明为NSInteger。任何帮助将不胜感激,谢谢你提前!

1 个答案:

答案 0 :(得分:1)

因为scoreNumber = 0;。您正在递增staticScore以进行分数更新并增加,但您在退出游戏场景时设置scoreNumber = 0。您需要执行staticScore = 0才能重置分数。