有幾種方法可以做你想做的。我會給你一些提示和提示,以便你可以創建適合你遊戲的代碼。
首先記住MyScene是一個SKScene,默認情況下它是從SpriteKit項目模板中的View Controller中調用的。所以你可以創建儘可能多的SKScene類,只要你想有層次。每個SKScene類可以是一個級別。
您可以將您的第一個SKScene,MyScene變成主菜單,並添加用戶級別列表以供選擇。若要從主菜單(MyScene)到選定的水平,你可以使用這樣的事情:
SKScene *gameLevel1 = [[Level1 alloc] initWithSize:self.size];
SKTransition *reveal = [SKTransition doorsOpenVerticalWithDuration:1.0];
[self.view presentScene:gameLevel1 transition:reveal];
1級將是你SKScene類爲您的第一級的名。還有一些很棒的轉變可供選擇。您還可以根據您的需要包含scaleMode屬性。
正如LearnCocos2D已經指出的那樣,您可以使用數組或字典來存儲玩家的數據,例如項目,健康狀態和等級。除非您需要保存大量數據,否則NSUserDefaults是您的最佳選擇。這裏是如何將數據存儲與一個NSUserDefaults的例子:
NSString *valueToSave = @"Level 5";
[[NSUserDefaults standardUserDefaults] setObject:valueToSave forKey:@"levelReached"]
[[NSUserDefaults standardUserDefaults]synchronize];
要讀取存儲在值NSUserDefaults的,你可以這樣做:
NSString *highLevel = [[NSUserDefaults standardUserDefaults] stringForKey:@"levelReached"];
您可以隨時寫入新的數據到NSUserDefaults的。所以如果玩家剛剛完成一個級別,請將其寫入NSUserDefaults。
你是完全沉迷於此還是你嘗試過一些可能的解決方案? – sangony
完全難倒@sangony,我試過玩弄它,但似乎沒有任何工作,我應該以不同的方式接近它?是一個BOOL使用錯誤的東西? – user3576196
如果你展示了一些你已經嘗試過的東西,並解釋它爲什麼不符合你的期望,你可能會得到更好的答案。 –