[英]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.