2013-09-16 24 views
0

如何保存我的游戏在cocos2d的高分,我已经有一个变量称为得分,显示了得分,而玩游戏,我想变的高分是“高分”,怎么样我是否将此代码编入我的游戏? UPDATE我试图将其添加到,但仍然没有运气,这里是我的init如何保存和调用排行榜在cocos2d

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

您可以使用UserDefaults –

+0

我该如何编码? –

+0

我建议用xCode或AppCode甚至vi来做。在这里的同一主题上有很多问题(和答案)......去看看。 – YvesLeBorg

回答

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]; 
+0

我是否在我的init中保存并加载了这个?或者别的地方?我还没有与任何neuserdefaults经验 –

+0

当您需要访问您的高分,不管是在应用程序的负载或过一段时间后,您可以加载此。你也可以随时保存。 – RyanG

+0

还需要更多的帮助,我已经更新了问题 –

2

首先获取你的最后高分。

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

现在比较它与上一个高分,如果它高于旧商店,然后新的高分。

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

如何绘制线条并让精灵跟随该线条并擦除该线条? – Rajneesh071