SpriteKit - 获取SKNode的绝对大小

时间:2017-07-05 06:39:19

标签: swift sprite-kit cgsize

我在Swift和SpriteKit编写一个小游戏,它由一个盒子组成(4 * 8)。

Scene (1024 * 768)
    boxes (964 * 452)
        row1 (932 * 25)
            col1 (24 * 116)
            col2 (24 * 116)
            col3 (24 * 116)
            ...
        row2...

我想给它们一个纹理,但我不知道图像文件应该有多大。并且框节点的大小似乎与其父节点相关。如何获得节点在屏幕上显示的大小SKNode的绝对大小?

2 个答案:

答案 0 :(得分:5)

所有SKNode都有一个名为calculateAccumulatedFrame

的方法

答案 1 :(得分:0)

将缩放任何纹理以填充节点。只需确保纹理和节点的宽高比相同(例如,使它们都是正方形)。

"尺寸" Node的属性有效!例如:

let test = SKSpriteNode(color: .clear, size: CGSize(width: 100.0, height: 100.0))
print(test.size)
test.setScale(2.0)
print(test.size)

正确打印:

(100.0, 100.0)
(200.0, 200.0)