Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift SpriteKit场景节点比例澄清_Swift_Xcode_Sprite Kit - Fatal编程技术网

Swift SpriteKit场景节点比例澄清

Swift SpriteKit场景节点比例澄清,swift,xcode,sprite-kit,Swift,Xcode,Sprite Kit,我正在开发一款2D iOS游戏,第一次尝试在xCode中使用场景生成器。如果这是初步的,请原谅我 我在场景中添加了一个SKColorNode,默认情况下它会创建一个小正方形。因此,我调整了正方形的大小,使其成为屏幕中心的矩形,大约占屏幕总大小的80%。通过这样做,它将该节点的比例更改为x:7.1,y:5.3。现在,我添加了一些其他颜色节点作为此节点的子节点,并将纹理应用于它们 当这些节点是原始矩形的子节点时,它们的比例为x:0.14,y:.188。但如果我将它们移回父场景,它们的比例为x:1,y

我正在开发一款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))

我经常使用场景编辑器,这让我很沮丧!。我不明白为什么我们不能在不改变比例的情况下在编辑器中调整SpriteNode的大小。所以,我要做的就是将“彩色精灵”拖到场景中,然后拖到我认为应该放的位置。然后我在属性检查器中查看大小,记下这些值。然后在属性检查器中将比例改回1,1,然后用我写下的数字手动填充大小值。现在,当我在该节点上进行任何缩放或动画工作时,一切都是它应该的样子。

我经常使用场景编辑器,这让我非常沮丧!。我不明白为什么我们不能在不改变比例的情况下在编辑器中调整SpriteNode的大小。所以,我要做的就是将“彩色精灵”拖到场景中,然后拖到我认为应该放的位置。然后我在属性检查器中查看大小,记下这些值。然后在属性检查器中将比例改回1,1,然后用我写下的数字手动填充大小值。现在,当我在该节点上进行任何缩放或动画工作时,一切都是它应该的样子。

这很荒谬,但确实有效。谢谢你的提示!没问题,很乐意帮忙。如果你觉得这很有用,请投票,或者把它标记为正确答案。这很荒谬,但确实有效。谢谢你的提示!没问题,很乐意帮忙。如果你觉得这有用,请投票,或将其标记为正确答案。