2017-03-02 91 views
1

我正在開發2D iOS遊戲,並首次在xCode中使用Scene builder。所以請原諒我,如果這是最基本的。SpriteKit場景節點縮放說明

我已將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)) 

回答

2

我使用場景編輯器很多,它讓我很失望!我不明白爲什麼我們無法在不改變比例的情況下在編輯器中調整SpriteNode的大小。所以,我所做的就是將「Color Sprite」拖到場景中,然後將其拖動到我認爲應該去的位置。然後我查看Attributes Inspector中的大小,將這些值寫下來。然後,我將屬性檢查器中的縮放比例更改爲1,1,然後手動用我記下的數字填充尺寸值。現在,當我在該節點上進行任何縮放或動畫工作時,所有事情都應該如此。

+0

那麼這就像它得到的一樣荒謬,但確實有效。謝謝你的提示! – TheValyreanGroup

+0

沒問題,很樂意幫忙。如果您發現這個有用的,請投票,或將其標記爲正確的答案。 –