开发者

Displaying scores or game statistics on game complete

Please can anyone point me to any tutorial or give me like an outline of the steps to take that shows how to display game statistics like "scores" when the game ends in Cocos2d -iphone, I need some guidance here to implement a level complete scene for a game where on completion or at the end of the game, the level complete screen comes up and displays the scores, time used and the name of the player as seen in most games. I have carried out some research and so far I have seen examples where the game state has been saved using NSKeyedArchiver and NSKeyedUnarchiver as shown in the code below:

In the applicationWillTerminate method in appdelegate.mm

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,   
NSUserDomainMask,YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *gameStatePath = [documentsDirectory  
      stringByAppendingPathComponent:@"gameState.dat"];

NSMutableData *gameData;
NSKeyedArchiver *encoder;
gameData = [NSMutableData data];
encoder = [[NSKeyedArchiver alloc] initForWritingWithMutableData:gameData];

[encoder encodeDouble:[[GameManager sharedGameManager]bestTime] forKey:@"bestTime"];
[encoder encodeInteger:[[GameManager sharedGameManager]livesLeft]  
           forKey:@"livesLeft"];
[encoder encodeInteger:[[GameManager sharedGameManager]currentLevel] 
            forKey:@"currentLevel"];

[encoder finishEncoding];
[gameData writeToFile:gameStatePath atomically:YES];
[encoder release];[/code]

and in my levelComplete.mm file I have

   NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,    
   NSUserDomainMask, YES);

   NSString *documentDirectory = [paths objectAtIndex:0];

   NSMutableData *gameData;
   NSKeyedUnarchiver *decoder;

   NSString *documentPath = [documentsDirectory    
   stringByAppend开发者_JAVA百科ingPathComponent:@"gameState.dat"]; 
   gameData = [NSData dataWithContentsOfFile:documentPath];

   if(gameData) {

   decoder = [[NSKeyedUnarchiver alloc] initForReadingWithData:gameData];

   [[GameManager sharedGameManager] setCurrentLevel:[decoder   
            decodeIntegerForKey:@"currentLevel"]];
  [[GameManager sharedGameManager] setlivesLeft:[decoder   
                 decodeIntegerForKey:@"livesLeft"]];
[[GameManager sharedGameManager] setBestTime:[decoder   
              decodeDoubleForKey:@"bestTime"]];

[decoder release];

After this Information I seem to get stuck as to the next thing to do and I don't know if this is the right way to go. I will very much welcome any suggestions or outlines as to the path to take in implementing this.

Also my project has a singleton class, a gameplayLayer and a HUD layer where these variables are at present being displayed.

Thanks


Here is a great little tutorial on how to make a simple space shooter app. I has a case at the end of the game which displays some information. There are also plenty of other tutorials on how to do basic game programming, with lots of sample code. Hope that Helps!

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜