SpriteKit场景节点比例说明

时间:2017-03-02 14:20:09

标签: swift xcode sprite-kit

我正在开发2D iOS游戏并且首次尝试在xCode中使用“场景”构建器。如果这是初步的话,请原谅我。

我已经在场景中添加了一个SKColorNode,默认情况下会创建一个小方块。因此,我将该正方形调整为屏幕中心的矩形,大约占总屏幕尺寸的80%。通过这样做,它将该节点的规模改为x:7.1,y:5.3。现在我已经添加了一些其他颜色节点作为这个节点的子节点并将纹理应用于它们。

当这些节点是原始矩形的子节点时,它们的比例为x:0.14,y:.188。但是如果我将它们移回父场景,它们的比例为x:1,y:1。在做完数学之后,我得到了数字来自他们孩子的地方 - (1 / 7.1 = 0.14) - 但为什么这样做呢?

我需要将比例设为1-1,所以当我想用SKAction.scaleTo()设置比例变化时,我可以告诉它缩小到两倍,或者说大50%,等等。如果没有1-1规模,我必须在创建动画之前检索并存储这些项目的比例。

也许有人可以告诉我,我是否会出现这种错误,或者只是它是什么?

编辑:这就是我作为解决方法所做的事情......

let overlay: SKSpriteNode!
let male: SKSpriteNode!
let female: SKSpriteNode!

overlayScaleFactorX = 1 / overlay.xScale
overlayScaleFactorY = 1 / overlay.yScale

male.run(SKAction.scaleX(to: overlayScaleFactorX * 1.2,y: overlayScaleFactorY * 1.2, duration: 0.2))

female.run(SKAction.scaleX(to: overlayScaleFactorX * 0.8,y: overlayScaleFactorY * 0.8, duration: 0.2))

male.run(SKAction.scaleX(to: overlayScaleFactorX * 0.8,y: overlayScaleFactorY * 0.8, duration: 0.2))

female.run(SKAction.scaleX(to: overlayScaleFactorX * 1.2,y: overlayScaleFactorY * 1.2, duration: 0.2))

我想能够做到

male.run(SKAction.scale(to: 1.2,duration: 0.1))

1 个答案:

答案 0 :(得分:2)

我经常使用场景编辑器,这让我很沮丧!我无法理解为什么我们不能在不改变比例的情况下在编辑器中调整SpriteNode的大小。所以,我所做的就是拖动" Color Sprite"在现场,拖动和定位到我认为应该去的地方。然后我查看Attributes Inspector中的大小,将这些值写下来。然后,我在“属性”检查器中将比例更改回1,1,然后使用我记下的数字手动填写大小值。现在,当我在该节点上进行任何缩放或动画工作时,一切都应该如此。