[英]SpriteKit: How to prevent two SKSpriteNodes from colliding (in Swift)
[英]What's the difference of setScale and size of SKSpriteNodes in SpriteKit and Swift?
我試圖從PNG圖像設置SKSpriteNode
的大小(好吧,只需:
test = SKSpriteNode(imageNamed: "myImage")
但是當涉及到調整大小時,我不確定是否應該使用test.setScale
或test.size
。 有什么區別,什么時候應該使用它們?
setScale()
:
設置節點的xScale和yScale屬性。 這兩個參數是比例因子,它將節點及其子節點的寬度(對於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.