2014-02-16 38 views
0

我有一個場景,用戶在遊戲中選擇水平,然後我想切換到用戶選擇的水平的遊戲場景。我想創建具有合適級別的遊戲場景,但要做到這一點,我需要傳遞一個整數,這是遊戲場景的級別數字,因此我知道要裝入哪個級別。在場景之間傳遞整數,iphone遊戲精靈套件

我的問題是,我該如何做到這一點?我查看了節點的userdata屬性,但無法弄清楚如何使用它來完成我想要的功能。任何幫助將深表感謝。

回答

2

當您在級別選擇場景中調用[self.view presentScene:scene transition:transition]時,首先使用級別編號設置新場景。 SO:

//GameScene.h 
//This is the public interface for your game scene 
@import SpriteKit; 
@interface GameScene : SKScene 
@property (nonatomic, assing)NSInteger levelNumber; 
@end 

然後

//Level Selection Scen 
//Select.m 
#import "GameScene.h" 
... Rest of your code 
User selects level and you prepare for transition and call 
- (void)transitionToLevel:(NSInteger)level{ 
    GameScene *destinationScene = [[GameScene alloc] initWithSize:self.size]; 
    destinationScene.levelNumber = level; 
    SKTransition *transition = //Set up transition here 
    [self.view presentScene:destinationScene transition:transition]; 
}  

而在你的遊戲場景的實現

//GameScene.m 
#import "GameScene.h" 
@implementation GameScene 
-(id)initWithSize:(CGSize){ 
    if (self.levelNumber == 1){ 
     [self playLevelOne]; //Where this is where you play your game 
    } 
    else if (self.levelNumber == 2){ 
     [self playLevelTwo]; 
    } 
} 
- (void)playLevelOne{ 
    //Level Implementation 
} 
- (void)playLevelTwo{ 
    //Level Implementation 
} 
@end 

你會爲你計劃支持

+0

感謝的人每個級別做到這一點,那正是我需要的! – Marcus

0
// First Scene 
    NSUserDefaults.standardUserDefaults().setInteger(12345, forKey:"SCORE") 

    // Second Scene 
    if let myScore: AnyObject = NSUserDefaults.standardUserDefaults().objectForKey("SCORE") { 
     println(myScore) 
     finalScore = myScore as IntegerLiteralType 
    }