如何子类化SKNode以使用预定大小初始化它

时间:2014-02-17 19:01:03

标签: size sprite-kit sknode

SKScene是SKNode的子类,我们可以用一定的大小初始化它。但是SKNode本身缺乏这种能力,它的大小是包含孩子的最小矩形。有时我需要我的SKNode伸展到窗口,无论内容有多小。因此,我希望能够通过添加设置其大小的功能来自定义SKNode类。你有什么想法吗?

1 个答案:

答案 0 :(得分:12)

奇怪的是,似乎没有一种方法可以将这个内置到精灵工具包中。您可能需要通过向节点添加透明的SKSpriteNode来解决问题:

- (id)initWithSize:(CGSize)size{
    self = [super init];
    if (self) {
        SKSpriteNode *node = [SKSpriteNode spriteNodeWithColor:[UIColor colorWithWhite:1.0 alpha:0.0] size:size];
        [self addChild:node];
        node.zPosition = -1;
        node.name = @"transparent";
        node.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame));
    }
    return self;
}

现在您可以将其初始化为您想要的大小,如果您想更改节点大小,则必须确保更改透明节点大小。