Sprite kit 在不缩放子节点的情况下缩放SKSpriteNode

Sprite kit 在不缩放子节点的情况下缩放SKSpriteNode,sprite-kit,skspritenode,sklabelnode,Sprite Kit,Skspritenode,Sklabelnode,我正在尝试以编程方式创建按钮。我已经对SKSpriteNode进行了子类化,它的一个子类是SKLabelNode。我这样做的原因是,标签和按钮一起移动,成为一个单元。问题是,当我缩放按钮时,标签也会缩放,它会扭曲文本,使其看起来像像素(非常可怕)。有没有办法,即使我必须重写整个内容,这样我就可以只缩放按钮?在发布此问题之前,我找了大约一个小时的答案,然后在发布问题的第二天,我发现答案……难以置信 设置父对象(SKSpriteNode)的大小将影响精灵的大小,但不会影响子对象(标签)的大小。代码如

我正在尝试以编程方式创建按钮。我已经对SKSpriteNode进行了子类化,它的一个子类是SKLabelNode。我这样做的原因是,标签和按钮一起移动,成为一个单元。问题是,当我缩放按钮时,标签也会缩放,它会扭曲文本,使其看起来像像素(非常可怕)。有没有办法,即使我必须重写整个内容,这样我就可以只缩放按钮?

在发布此问题之前,我找了大约一个小时的答案,然后在发布问题的第二天,我发现答案……难以置信

设置父对象(SKSpriteNode)的大小将影响精灵的大小,但不会影响子对象(标签)的大小。代码如下:

[button setSize:CGSizeMake(100, 200)]; //button is the SKSpriteNode

标签文本的大小可以与按钮的大小分别更改。这允许按钮的位置和文本保持链接,但其大小可以单独控制。正是我需要的。首先,也许有更好的子类化SKSpriteNode的解决方案,但我想不出更好的方法来保持它们的链接,同时保持它们的独立性。

请允许我提供另一种解决方案。假设精灵和标签是父对象和子对象,如果放大精灵:

sprite.scale = 1.25;
您只需将子标签按相同的比例缩小:

label.scale = 0.75;

我也想过这样做。我可能错了,但我注意到,即使每次重新创建标签,它也会以父对象的比例倍增。有没有一种方法可以避免这种情况,而不执行您建议的操作?IOS 8的速度不够快。我希望他们能使以编程方式构建菜单变得更容易!我知道这是一条非常晚的评论,但在搜索我自己的解决方案时发现了这条评论,但此解决方案无法作为
1*1.25=1.25
1.25*0.75!=1
。您可以将其乘以0.8,也可以将其除以相同的总和
1.25*0.8=1
1.25/1.25=1