2011-09-04 119 views
1

請任何人都可以指向我的任何教程或給我一個類似於如何顯示遊戲統計信息(比如遊戲結束時在Cocos2d -iphone中顯示「分數」我需要一些指導來實現一個遊戲的完整場景,在完成或遊戲結束時,會出現關卡完整屏幕,並顯示大多數遊戲中看到的玩家的得分,使用時間和玩家姓名。我已經進行了一些研究,到目前爲止,我所看到的例子,其中如下面的代碼中的遊戲狀態一直使用的NSKeyedArchiver和NSKeyedUnarchiver保存:在遊戲結束時顯示分數或遊戲統計信息

在applicationWillTerminate方法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] 

在我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]; 

這個信息後,我似乎卡住爲接下來要做的事情,我不知道這是否是正確的道路要走。我非常歡迎任何建議或概述,以採取實施這一路線。

此外我的項目還有一個singleton類,一個遊戲玩法層和一個HUD層,其中這些變量目前正在顯示。

感謝

回答

1

Here是關於如何使一個簡單的太空射擊遊戲應用一個偉大的小教程。我在遊戲結束時會顯示一些信息。還有很多關於如何進行基本遊戲編程的其他教程,以及大量示例代碼。希望有助於!

+0

謝謝你的回覆。我實際上看過你剛纔指出的教程,但它沒有我要找的功能。我只是不希望顯示「丟失」和「重新啓動」文本,我想要的是一個關卡完成場景,其中顯示了您在該關卡中獲得的分數以及顯示完成關卡和玩家姓名所需的時間。謝謝你的幫助。乾杯! – Zaki

+0

所有你需要做的就是修改那個說「你輸了」的部分。將圖像添加到看起來像背景的「完整級別」圖像。您只需調用一個「浮點」值來計算遊戲持續的時間,並以「丟失」的方式打印結果數字。對於玩家達到的任何分數也是如此。這很簡單。 – msgambel

+0

感謝一百萬人。我明白你的意思,我必須說這是一個非常好的主意,但是我可以問一下,用你的方法,可以保存這些顯示的統計數據,作爲後續會話的進度跟蹤器嗎? – Zaki