SKScene是SKNode的子类,我们可以用一定的大小初始化它。但是SKNode本身缺乏这种能力,它的大小是包含孩子的最小矩形。有时我需要我的SKNode伸展到窗口,无论内容有多小。因此,我希望能够通过添加设置其大小的功能来自定义SKNode类。你有什么想法吗?
答案 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;
}
现在您可以将其初始化为您想要的大小,如果您想更改节点大小,则必须确保更改透明节点大小。