【问题标题】:Passing integer between scenes, iphone game sprite-kit在场景之间传递整数,iphone游戏精灵套件
【发布时间】:2014-02-16 22:49:56
【问题描述】:

我有一个用户在游戏中选择关卡的场景,然后我想切换到用户选择的关卡的游戏场景。我想创建具有正确关卡的游戏场景,但要做到这一点,我需要将一个整数作为关卡编号传递给游戏场景,以便我知道要加载哪个关卡。

我的问题是,我该如何做到这一点?我查看了节点的 userdata 属性,但无法弄清楚如何使用它来完成我想要的。任何帮助将不胜感激。

【问题讨论】:

    标签: ios iphone cocoa-touch sprite-kit scene


    【解决方案1】:

    当您在关卡选择场景中调用[self.view presentScene:scene transition:transition] 时,首先使用关卡编号设置您的新场景。所以:

    //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
    

    您将为您计划支持的每个级别执行此操作

    【讨论】:

      【解决方案2】:
          // First Scene
          NSUserDefaults.standardUserDefaults().setInteger(12345, forKey:"SCORE")
      
          // Second Scene
          if let myScore: AnyObject = NSUserDefaults.standardUserDefaults().objectForKey("SCORE") {
              println(myScore)
              finalScore = myScore as IntegerLiteralType
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-09-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-02
        • 1970-01-01
        • 2023-03-09
        • 1970-01-01
        相关资源
        最近更新 更多