繁体   English   中英

Spritekit上的吸气剂

[英]Getters on spritekit

我有一点问题。 让我向您介绍一下:在SpriteKit上,我们有MyScene.m和.h文件。 此类具有一个称为“大小”的属性。 我们可以使用“ self.size”从MyScene.m文件访问它。 我创建了一个名为Menu的类,所以我们有一个.m和.h。 此类是“ SKNode”的子类。 我的问题是我想在Menu类中获取MyScene类的“ size”属性的值。 因为我有一些要添加到Menu对象的节点,所以它们的位置将取决于MyScene的“大小”属性。

你能告诉我怎么做吗。 谢谢

您可以使用SKNode scene属性来检索包含该节点的场景。 有关更多信息,请参见SKNode类参考

您可以为Menu类使用initWithSceneSize:(CGSize)size方法,然后将大小存储在Menu类的ivar或属性中。

.m中带有ivar的示例:

@implementation MenuClass
{
    CGSize sceneSize;
}

-(instancetype)initWithSceneSize:(CGSize)size
{
     sceneSize = size;
     if (self = [super init])
     {
         // do whatever
     }
     return self;
}

现在,您可以在sceneSize位置使用sceneSize ivar来调整元素的大小和/或对齐。

另一个答案中详细介绍了另一个选项,该选项使用SKNode的scene属性。

这是一个可行的选择,但请注意,如果节点当前不是节点树的子级,则scene属性将为nil 因此,您应确保当前已将其添加到场景的节点树中。

一个示例是,如果您尝试在构造函数中使用scene属性,那么此时将无法访问它,这将使您感到困惑。

绝对是一个可行的选择,一个不错的选择,但是请注意这一方面,否则可能是您接下来的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM