ios - 播放期间节点消失显示错误...Thread1 : EXC_BAD_ACCESS (code=, 地址= 0x0)

标签 ios swift sprite-kit skaction

我正在使用 SKAction 来缩放节点。游戏进行约 2 分钟后,节点消失。基本游戏玩法是您必须不断触摸节点以缩小它,否则它会变大。所以如果它不存在,你就不能玩。我不确定为什么节点现在消失了。

创建节点的代码:

node.create(mainScreenview, position: CGPoint(x: frame.size.width / 2, y: frame.size.height / 2), size: CGSize(width: 150, height: 150), color: greyColour, name: "Test")


func nodeAction() {
    node.runAction(SKAction.scaleBy(10.0, duration: 8.5))
}

比较正确答案的函数

 func compareNodes() {

if !nodesToCheck.isEmpty {
  let checkThisNode = nodesToCheck[0] as! SKSpriteNode
  if checkThisNode.name == node.name {
    node.physicsBody = nil
    node.removeAllActions()

    score += 1
    nodesToCheck.removeAll()
    changeSizeToSmall()


  } else {
    gameOver()
  }
}

func changeSizeToSmall() {

'node.size = CGSize(width: 60, height: 60)'

现在 SKAction.resizeToWidth(60, height: 60, duration: 1.0))

这一行的错误信息

node.physicsBody = SKPhysicsBody(circleOfRadius: node.size.width / 2)

Thread1: EXC_BAD_ACCESS (code=, address= 0x0)

并且始终突出显示节点的物理体。这些线之间没有任何东西 以及其余的节点代码

    node.physicsBody?.affectedByGravity = false
    node.physicsBody?.categoryBitMask = PhysicsCategory.node.rawValue
    node.physicsBody?.contactTestBitMask = PhysicsCategory.bird.rawValue
    node.physicsBody?.collisionBitMask = 0
}

应用程序因该错误而崩溃。内存使用在游戏过程中没有太大变化,但确实增加了。我已经注释掉了 SKAction 行,我可以想玩多久就玩多久。所以我知道缩小节点和添加物理体会占用大量内存,但我不知道该怎么做。每次调用并重新创建节点后,我都尝试删除该节点。尝试使用仪器进行调试以查看正在释放的内容,寻找引用周期,但我真的不确定我在寻找什么。

我该怎么做才能阻止这种情况发生?

感谢您的帮助

最佳答案

我更改了节点的大小属性,以便它可以被 SKAction 更改,而这似乎有效。

SKAction.resizeToWidth(60, height: 60, duration: 1.0))

关于ios - 播放期间节点消失显示错误...Thread1 : EXC_BAD_ACCESS (code=, 地址= 0x0),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38684379/

相关文章:

iphone - 对数组中的日期进行排序

ios - 无法在 iPhone 6 中安装我的 ARKit 支持的应用程序,但苹果的演示应用程序在同一部 iPhone 上成功运行

ios - 查看调试: What are the layers of view in any View Controller?

ios - 将 PNG 附加到 MFMailComposer 时,图像会自动旋转为横向

objective-c - AvAudioRecorder 取消替换旧音频文件

ios - 如何预加载纹理图集以获得更好的 FPS?在 swift

ios - ComputerNode 不显示 Objective-C

ios - touchesBegan 与 UITapGestureRecognizer

ios - 在 iOS 8 上获取键盘大小不适用于外部键盘

ios - 如何将 swift 文件与 SKscene 连接?