我被困在試圖通過兩個場景,MyScene和MyMenu之間的分數。 其中分值的變化被聲明爲_score(NSInteger的),它的標籤是_scoreLabelNode(SKLabelNode),我用於初始化標籤,並創建包含在MyScene比分是Sprite Kit:如何在不同場景之間傳遞分數?
_score = 0;
_scoreLabelNode = SKLabelNode labelNodeWithFontNamed:@"MarkerFelt-Wide;
_scoreLabelNode.position =CGPointMake (CGRectGetMidX(self.frame), 3 *self.frame.size.height /4);
_scoreLabelNode.zPosition = 100;
_scoreLabelNode.text = [NSString stringWithFormat:@"%d",_score];
_scoreLabelNode.fontColor =[UIColor blackColor];
[self addChild:_scoreLabelNode]
標籤代碼中的遊戲部分
所以我想我的問題是,當MyScene中的分數需要更改時,如何在兩個場景之間傳輸分數,並且需要顯示用戶在MyMenu中獲得的分數。提前致謝。
PS:我剛學代碼,所以我將不勝感激一個詳細的答覆
我在哪裏可以把每個代碼?在接口或實現? – yasgur99
我把這兩個都放在每個文件的.m's的實現部分中。這導致了和以前一樣的事情。無論我得到什麼,分數都是0。我是否應該刪除每個中的_scoreLabelNode代碼?並且我應該刪除_和_scoreLabelNode中的節點,因爲你寫的SKLabelNode是scoreLabel?我是否必須在界面中聲明任何內容? – yasgur99
我同意@nathreed。在應用程序啓動時(在應用程序委託didFinishLaunching方法中),如果userDefaults值返回nil,您可能需要將分數設置爲0。然後當你的菜單出現時,你可以通過獲取用戶默認值來更新你的分數。你將不得不添加到MyScene的用戶默認值 –