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