請任何人都可以指向我的任何教程或給我一個類似於如何顯示遊戲統計信息(比如遊戲結束時在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層,其中這些變量目前正在顯示。
感謝
謝謝你的回覆。我實際上看過你剛纔指出的教程,但它沒有我要找的功能。我只是不希望顯示「丟失」和「重新啓動」文本,我想要的是一個關卡完成場景,其中顯示了您在該關卡中獲得的分數以及顯示完成關卡和玩家姓名所需的時間。謝謝你的幫助。乾杯! – Zaki
所有你需要做的就是修改那個說「你輸了」的部分。將圖像添加到看起來像背景的「完整級別」圖像。您只需調用一個「浮點」值來計算遊戲持續的時間,並以「丟失」的方式打印結果數字。對於玩家達到的任何分數也是如此。這很簡單。 – msgambel
感謝一百萬人。我明白你的意思,我必須說這是一個非常好的主意,但是我可以問一下,用你的方法,可以保存這些顯示的統計數據,作爲後續會話的進度跟蹤器嗎? – Zaki