如何在Cocos2D中保存并调用Highscore

时间:2013-09-16 13:23:30

标签: ios cocos2d-iphone

如何在cocos2d中保存我的游戏高分,我已经有一个名为得分的变量,在玩游戏时显示得分,我希望高分的变量是“高分”,我如何将其编码到我的游戏中?更新我试图添加它但仍然没有运气,这是我的init中的代码

UserHighScoreLabel = [[defaults valueForKey:@"highscore"] integerValue];

    UserHighScoreLabel = [CCLabelTTF labelWithString:@"0" fontName:@"Arial" fontSize:14];
    UserHighScoreLabel.position = ccp(65, 200);
    UserHighScoreLabel.color = ccc3(255, 255, 255);
    [self addChild:UserHighScoreLabel];

    defaults = [NSUserDefaults standardUserDefaults];

    [[NSUserDefaults standardUserDefaults]setInteger:Strategyscore forKey:@"highscore"];
    [defaults synchronize];

2 个答案:

答案 0 :(得分:3)

您可以使用NSUserDefaults在设备上保存高分,以便随时检索。

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

//saving
[defaults setValue:yourHighScore forKey:@"SavedHighScore"];
[defaults synchronize]; //you must synchronize to save


//retreiving
int highScore;
highScore = [[defaults valueForKey:@"SavedHighScore"] intValue];

//set label text to retrieved high score
UserHighScoreLabel.text = [NSString stringWithFormat:@"%d", highScore];

您还可以将JSON或XML字符串存储为用户默认值,并在您进行检索后对其进行解析。

如果你有一个HighScore对象,或者你存储了很多值,CoreData可能值得使用,但如果你只是存储一些高分则不是最佳。

使用您的代码编辑

defaults = [NSUserDefaults standardUserDefaults];

highScore = [[defaults valueForKey:@"SavedHighScore"] intValue];

//init before setting the text
UserHighScoreLabel = [CCLabelTTF labelWithString:@"0" fontName:@"Arial" fontSize:14];

//set label text to retrieved high score
UserHighScoreLabel.text = [NSString stringWithFormat:@"%d", highScore];

UserHighScoreLabel.position = ccp(65, 200);
UserHighScoreLabel.color = ccc3(255, 255, 255);
[self addChild:UserHighScoreLabel];

答案 1 :(得分:2)

首先获取你的最后一个高分。

int highScore = [[defaults valueForKey:@"highscrore"] integerValue];

现在将它与最后一个高分进行比较,如果它高于旧商店,那么新的高分。

[NSUserDefaults standardUserDefaults]setInteger:score forKey:@"highscrore"];
[defaults synchronize];