簡體   English   中英

SpriteKit和Swift中的setSpcale和SKSpriteNodes的大小有什么區別?

[英]What's the difference of setScale and size of SKSpriteNodes in SpriteKit and Swift?

我試圖從PNG圖像設置SKSpriteNode的大小(好吧,只需:

test = SKSpriteNode(imageNamed: "myImage")

但是當涉及到調整大小時,我不確定是否應該使用test.setScaletest.size 有什么區別,什么時候應該使用它們?

setScale()

設置節點的xScaleyScale屬性。 這兩個參數是比例因子,它將節點及其子節點的寬度(對於xScale)和高度(對於yScale)相乘。

代碼示例:

spaceship.setScale(0.50) // decreased scale to it's half size

size() :以磅為單位表示精靈的尺寸寬度高度 )。

代碼示例:

spaceship.size = CGSizeMake(100.0, 70.0) // Re-size the dimensions to these values

什么時候使用setScale ,什么時候使用size

通常setScale用於增加或減少關於比例因子的精靈,例如SKAction.scaleTo用於放大或縮小的SKAction.scaleTo

經常使用size因為你可以用點表示你想要對精靈做的確切值。

如果要更改SKSpriteNode的特定大小而不影響該sprite節點的任何子節點的大小,則應使用大小。

縮放精靈節點不僅會改變節點的大小(比例),還會適當地(按比例)縮放所有精靈節點的子節點。

如果精靈節點沒有子節點,那么大小和規模之間沒有實際差別。

注意:我發現當無關緊要時使用大小是有幫助的,因此我知道1.0的標度始終是默認大小 - 使用scaleTo代替scaleBy並再次返回默認大小的動畫很方便。

如果你使用的是spriteNode,我會使用.setScale,或.xScale或.yScale,因為它們專門用於sprite。 .size也可用於UIKit中標簽和文本視圖的大小。

讓我們說你想要精靈大2倍:

theNode.xScale = 2.0
theNode.yScale = 2.0

請注意,它們必須是浮點數,而不是整數

總而言之,.setScale通常用於spriteNodes和圖像,而.size用於大量不是圖像的東西,比如標簽等等。 因此,如果您使用的是精靈,請使用.setScale。 如果要調整塊的大小,請使用.size。

如果您認為這是正確的答案,請將其標記為如此,這樣可以幫助其他任何人解決此問題。 謝謝!

我總是使用.size屬性調整大小,因為我相信當你使用.setScale / .xScale /時,節點的物理體不會自動縮放。 yScale 如果縮放節點,則需要重做physicsBody的大小。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM