0

如何在 cocos2d 中保存我的游戏高分,我已经有一个名为 score 的变量,它在玩游戏时显示分数,我希望高分的变量是“高分”,我如何将它编码到我的游戏中?更新我试图添加它但仍然没有运气,这是我的 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];
4

2 回答 2

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];
于 2013-09-16T13:33:36.867 回答
2

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

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

现在将它与上次的高分进行比较,如果它高于旧商店然后是新的高分。

[NSUserDefaults standardUserDefaults]setInteger:score forKey:@"highscrore"];
[defaults synchronize];
于 2013-09-16T13:34:30.303 回答