如何在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];
答案 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];