将 child 添加到 SKCropNode 时应用程序冻结
App freezes when adding child to SKCropNode
当我尝试将场景中存在的 child 添加到 cropNode 时,应用程序冻结。但是,如果我将此 child 作为图像添加到资产中,它不会冻结。当我尝试加载该场景时,应用程序不响应点击。
我使用 Swift 5,SpriteKit 11 和 Xcode 10。
该代码冻结了应用程序:
self.screenApp1 = childNode(withName: "screenapp1") as? SKSpriteNode
let cropMask = SKSpriteNode(imageNamed: "crop")
let cropNode = SKCropNode()
cropNode.position = CGPoint(x: 0, y: 0)
cropNode.maskNode = cropMask
cropNode.zPosition = 4
let child = self.screenApp1
child.size = CGSize(width: 260, height: 346)
cropNode.addChild(child)
addChild(cropNode)
但事实并非如此:
let cropMask = SKSpriteNode(imageNamed: "crop")
let cropNode = SKCropNode()
cropNode.position = CGPoint(x: 0, y: 0)
cropNode.maskNode = cropMask
cropNode.zPosition = 4
let child = SKSpriteNode(imageNamed: "screenapp1")
child.size = CGSize(width: 260, height: 346)
cropNode.addChild(child)
addChild(cropNode)
我修好了。
我只需要一行:
child.removeFromParent()
之后
let child = self.screenApp1
现在完美运行了。
当我尝试将场景中存在的 child 添加到 cropNode 时,应用程序冻结。但是,如果我将此 child 作为图像添加到资产中,它不会冻结。当我尝试加载该场景时,应用程序不响应点击。
我使用 Swift 5,SpriteKit 11 和 Xcode 10。
该代码冻结了应用程序:
self.screenApp1 = childNode(withName: "screenapp1") as? SKSpriteNode
let cropMask = SKSpriteNode(imageNamed: "crop")
let cropNode = SKCropNode()
cropNode.position = CGPoint(x: 0, y: 0)
cropNode.maskNode = cropMask
cropNode.zPosition = 4
let child = self.screenApp1
child.size = CGSize(width: 260, height: 346)
cropNode.addChild(child)
addChild(cropNode)
但事实并非如此:
let cropMask = SKSpriteNode(imageNamed: "crop")
let cropNode = SKCropNode()
cropNode.position = CGPoint(x: 0, y: 0)
cropNode.maskNode = cropMask
cropNode.zPosition = 4
let child = SKSpriteNode(imageNamed: "screenapp1")
child.size = CGSize(width: 260, height: 346)
cropNode.addChild(child)
addChild(cropNode)
我修好了。 我只需要一行:
child.removeFromParent()
之后
let child = self.screenApp1
现在完美运行了。