【发布时间】:2020-01-29 06:54:09
【问题描述】:
我在 App Store 上有一个完整的可运行游戏,但从 iOS 13 开始,它根本无法运行。我已经通过 Xcode 将游戏安装到我的设备上,但出现了很多错误:
PhysicsBody:无法创建物理体。
我一直在像这样创建我的 SKSpriteNode:
let bird = SKSpriteNode(texture: SKTextureAtlas(named:"player").textureNamed("bird0001"))
bird.physicsBody = SKPhysicsBody(texture: bird.texture!,
size: bird.size)
根据一些研究,这可能是 iOS 和 Xcode 的一个持续存在的错误。有人可以确认是否是这种情况,因为对于使用纹理创建 SKSpriteNodes 的应用商店上的游戏来说,这似乎是一个主要问题?
在需要纹理的地方有解决办法吗?
【问题讨论】:
-
是的,这是一个错误。至少对我们来说,来自地图集之外的纹理的物理实体是有效的。我们通过复制资产的非纹理版本并从中构建物理体来避免这个问题。如果你不能这样做并且不能使用圆形或矩形体之类的替代方案,也许制作一个精灵,然后使用 SKView 的
texture(from:)或texture(from:crop:)会给出一个可以工作的纹理。不过我没试过。 -
我在这里的某处提供了临时修复此错误的代码
-
嘿 Knight0fDragon,这很好。你能不能链接到那个?
-
不知道我在哪里发的,如果你搜索这个错误,你应该可以找到它。
-
texture(from:)确实会生成可用于成功创建物理体的纹理。请参阅下面的答案,了解哪些有效,哪些无效。
标签: swift sprite-kit