如何从SKCropNode获取可见内容的框架?

时间:2016-08-30 23:48:36

标签: objective-c swift sprite-kit sknode skcropnode

看来,在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到确定是否存在增长帧的实际内容。听起来很难。

有一种简单的计算方法吗?

0 个答案:

没有答案