看来,在SpriteKit中,当我在SKCropNode中使用掩码来隐藏某些内容时,它无法更改由calculateAccumulatedFrame
计算的帧。我想知道是否有办法计算可见帧。
一个简单的例子:
import SpriteKit
let par = SKCropNode()
let bigShape = SKShapeNode(rect: CGRect(x: 0, y: 0, width: 100, height: 100))
bigShape.fillColor = UIColor.redColor()
bigShape.strokeColor = UIColor.clearColor()
par.addChild(bigShape)
let smallShape = SKShapeNode(rect: CGRect(x: 0, y: 0, width: 20, height: 20))
smallShape.fillColor = UIColor.greenColor()
smallShape.strokeColor = UIColor.clearColor()
par.maskNode = smallShape
par.calculateAccumulatedFrame() // returns (x=0, y=0, width=100, height=100)
我希望par.calculateAccumulatedFrame()
根据裁剪节点掩码返回(x=0, y=0, width=20, height=20)
。
我想也许我可以自己编写这个函数作为扩展,基本上重新实现calculateAccumulatedFrame
并支持检查SKCropNodes及其掩码,但我想到我需要考虑该掩码的alpha到确定是否存在增长帧的实际内容。听起来很难。
有一种简单的计算方法吗?