7

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

4

1 回答 1

12

奇怪的是,似乎没有办法在 sprite kit 中做到这一点。您可能必须通过向您的节点添加一个透明的 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;
}

现在你可以将它初始化为你想要的大小,如果你想改变节点大小,你只需要确保改变透明节点大小。

于 2014-02-18T01:34:38.187 回答