2014-02-16 5 views
0

У меня есть сцена, где пользователь выбирает уровень в игре, а затем я хочу переключиться на сцену игры с уровнем, который выбрал пользователь. Я хочу создать игровую сцену с правильным уровнем, но для этого мне нужно передать целое число, которое является номером уровня для игровой сцены, поэтому я знаю, какой уровень загрузить.Передача целого числа между сценами, iphone game sprite-kit

Вопрос, как это сделать? Я посмотрел на свойство 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 
    } 
Смежные вопросы