如何在另一个视图控制器中访问SpriteKit场景的变量?

时间:2014-03-16 21:21:16

标签: variables uiviewcontroller sprite-kit

如何在另一个视图控制器中访问SpriteKit场景的变量?我是初学者,由于某种原因,我无法弄清楚如何获取和设置不同类和场景的属性。

编辑: 对不起,我不清楚。我试着清理一下。我有一个简单的小游戏应用程序,其中有一个人玩游戏的场景。游戏结束后,应用程序将它们切换到游戏视图而不是另一个场景,它只是一个Viewcontroller类,我使用故事板来构建界面。我怎样才能得到场景中的分数,在屏幕上显示一个不同的视图控制器。

2 个答案:

答案 0 :(得分:0)

你的问题对我来说有点不清楚,但是无论如何都要尝试帮助。例如,SKScene有一个名为backgroundColor的属性,它是SKColor类型。如果你想改变它的价值,你可以采取以下两种方式。

MyScene.backgroundColor = [SKColor greenColor];
[MyScene setBackgroundColor: [SKColor blueColor]];

第一种方法是直接访问backgroundColor并将其值设置为绿色。 在第二个中,您调用一个名为“setter”的方法,并将其作为传递蓝色的参数。每次创建@property时,它都会为您创建2个方法,即该属性的getter和setter。getter返回变量值,setter用于设置该变量的值。这只是一个概述,有更多的关于它,你应该谷歌它的更多信息,有一堆教程在那里。

答案 1 :(得分:0)

您可以通过在场景中创建静态int并添加一个类方法来设置静态值并获取它来完成此操作。

在YourScene.m

@implementation YourScene

    static int score=nil;

    +(int)getStaticScore
    {
    return score;
    }

    +(void)setStaticScore:(int)new
    {
    score=new;
    }

@end
在YourScene.h中

@interface YourScene : SKScene
+(void)setStaticScore:(int)new;
+(int)returnStaticScore;
@end

然后在每个SKScene Viewcontroller和其他类中添加#import“YourScene.h”,您需要阅读得分。

你打电话给班级方法得分。 例如,在gameOverScene.m中导入YourScene.h并调用

[YourScene returnStaticScore]; //Will return you the score 
[YourScene setStaticScore:0]; //set the score to 0 for example 

有关详细信息,您可以在Google上搜索有关单身人士的信息。 我希望这会对你有所帮助。