如何在另一个视图控制器中访问SpriteKit场景的变量?我是初学者,由于某种原因,我无法弄清楚如何获取和设置不同类和场景的属性。
编辑: 对不起,我不清楚。我试着清理一下。我有一个简单的小游戏应用程序,其中有一个人玩游戏的场景。游戏结束后,应用程序将它们切换到游戏视图而不是另一个场景,它只是一个Viewcontroller类,我使用故事板来构建界面。我怎样才能得到场景中的分数,在屏幕上显示一个不同的视图控制器。
答案 0 :(得分:0)
你的问题对我来说有点不清楚,但是无论如何都要尝试帮助。例如,SKScene有一个名为backgroundColor的属性,它是SKColor类型。如果你想改变它的价值,你可以采取以下两种方式。
MyScene.backgroundColor = [SKColor greenColor];
[MyScene setBackgroundColor: [SKColor blueColor]];
第一种方法是直接访问backgroundColor并将其值设置为绿色。 在第二个中,您调用一个名为“setter”的方法,并将其作为传递蓝色的参数。每次创建@property时,它都会为您创建2个方法,即该属性的getter和setter。getter返回变量值,setter用于设置该变量的值。这只是一个概述,有更多的关于它,你应该谷歌它的更多信息,有一堆教程在那里。
答案 1 :(得分:0)
您可以通过在场景中创建静态int并添加一个类方法来设置静态值并获取它来完成此操作。
@implementation YourScene
static int score=nil;
+(int)getStaticScore
{
return score;
}
+(void)setStaticScore:(int)new
{
score=new;
}
@end
@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上搜索有关单身人士的信息。 我希望这会对你有所帮助。