显示游戏完成的分数或游戏统计数据

时间:2011-09-04 21:23:48

标签: iphone cocos2d-iphone

任何人都可以指点我任何教程或给我一个大概采取的步骤,说明如何在Cocos2d -iphone游戏结束时显示游戏统计数据,如“得分”,我需要一些指导来实现一个完成或在游戏结束时,游戏的等级完整场景出现等级完成屏幕,并显示在大多数游戏中看到的分数,使用的时间和玩家的名字。我已经进行了一些研究,到目前为止,我已经看到了使用NSKeyedArchiver和NSKeyedUnarchiver保存游戏状态的示例,如下面的代码所示:

在appdelegate.mm中的applicationWillTerminate方法

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]

在我的levelComplete.mm文件中我有

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

   NSString *documentDirectory = [paths objectAtIndex:0];

   NSMutableData *gameData;
   NSKeyedUnarchiver *decoder;

   NSString *documentPath = [documentsDirectory    
   stringByAppendingPathComponent:@"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];

在此信息之后,我似乎对下一件事情感到困惑,我不知道这是否是正确的方法。我非常欢迎任何关于实施这一目标的建议或大纲。

此外,我的项目还有一个单例类,一个gameplayLayer和一个HUD图层,其中显示了这些变量。

由于

1 个答案:

答案 0 :(得分:1)

Here是一个关于如何制作一个简单的太空射击应用程序的精彩小教程。我在比赛结束时有一个显示一些信息的案例。还有很多关于如何进行基本游戏编程的其他教程,包含大量示例代码。希望有帮助!