ios - 有没有一种简单的方法可以在 Swift 中暂时禁用 Sprite 的物理体? ( SpriteKit )

标签 ios swift sprite-kit maze

我正在制作一个迷宫应用程序,它会在迷宫完成后生成一个新的迷宫。显然,我可以通过在代码 wall[location].isHidden = true 中执行的操作将墙壁(每个墙壁都有自己的物理和 Sprite 存储在数组上的位置)变为不可见,但我无法找到一种方法对绑定(bind)到墙上的物理体执行相同的操作,从而创建一堵看不见的墙。有没有一种简单的方法可以做到这一点而不将其设置为零?

澄清一下,并不是我不希望它是动态的,我只是希望在解决迷宫时整个事情不存在。 另外,我不想将其设置为 nil 的唯一原因是因为我不知道如何以简单的方式恢复其旧的物理主体。

最佳答案

首选方法是从节点树中物理移除墙。这将提高性能,因为系统不必检查不必要的节点。

只需确保您的墙在拆除时被保留,以便您可以在需要时读取它。

wall[location].removeFromParent()    

...

scene.addChild(wall[location])

关于ios - 有没有一种简单的方法可以在 Swift 中暂时禁用 Sprite 的物理体? ( SpriteKit ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59204926/

相关文章:

iphone - 核心数据 : sorting before saving

ios - UIScrollView 无法使用自动布局和动态约束滚动

ios - @property @synthesize 等价于swift

ios - 弹出错误位置

ios - 在 SKScene 中获取屏幕边界 - didMoveToView(...)

swift - Sprite Kit 和类型推断

android - Adobe Flex 如何在 Android/iOS 上运行

ios - 检查日期是否在日期范围内

ios swift ResearchKit 使用 NSPredicate 跳过的条件

ios - Spritekit - 动态添加 child 会降低性能