【问题标题】:SpriteKit scene node scale clarificationSpriteKit 场景节点比例说明
【发布时间】:2017-03-02 14:20:08
【问题描述】:

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

【问题讨论】:

    标签: swift xcode sprite-kit


    【解决方案1】:

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

    【讨论】:

    • 好吧,这简直太荒谬了,但确实有效。感谢您的提示!
    • 没问题,很高兴为您提供帮助。如果您觉得这很有用,请投票,或将其标记为正确答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-22
    • 1970-01-01
    • 2014-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多