size - 如何对 SKNode 进行子类化以将其初始化为预定大小

标签 size sprite-kit sknode

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

最佳答案

奇怪的是,似乎没有办法在 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;
}

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

关于size - 如何对 SKNode 进行子类化以将其初始化为预定大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21837172/

相关文章:

C题: why char actually occupies 4 bytes in memory?

jquery - 如果超过特定窗口大小,则交换 div 背景

macos - 以编程方式从 1024 * 1024 大小的 NSImage 创建图标 (ICNS)

ios - 为 SKSpriteNode 添加发光效果

swift - 通过触摸在场景中四处移动

swift - 发射器未添加玩家位置

ios - Sprite Kit 设置节点角度(不旋转)

objective-c - Sprite Kit 按 Y 转动节点

javascript - 字体调整 HTML

ios - 平移手势识别器选择器不起作用