ios - SKSpriteNode 上不连续纹理的物理体路径

标签 ios objective-c sprite-kit skphysicsbody

我有一个像下面这样的纹理:

enter image description here

(上下 block 之间,是透明的)。

我想使用它创建一个 SpriteNode 并想将物理体附加到它上面。我如何创建一条路径(用于物理体的多边形),以便如果另一个物体穿过透明区域,则不会检测到碰撞?在我见过的例子中,物理体是连续的,路径在任何时候都不会中断。或者我可以将多个物理体附加到单个 SpriteNode 吗?

(PS:我想将其绘制为单个 SpriteNode)。

最佳答案

您可以使用 (SKPhysicsBody *)bodyWithBodies:(NSArray *)bodies 为一个 SKSpriteNode 创建两个或多个物理体。

Apple Docs:传入此方法的物理体的形状用于创建一个新的物理体,其覆盖区域是其子区域的并集。这些区域不需要是连续的。如果两个部分之间有空间,则其他物体可能能够在这些部分之间通过。然而,物理体被视为一个单独的连接体,这意味着施加到 body 上的力或脉冲会影响所有的部分,就好像它们是用一个坚不可摧的框架结合在一起的。

关于ios - SKSpriteNode 上不连续纹理的物理体路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29337897/

相关文章:

ios - 如何让替换 View 淡入旧 View 而不是与它交叉淡入淡出?

ios - NSArray mutableCopy 创建新数组但仍指向旧内容

ios - 如何在持久存储更改后刷新 fetchedResultsController

iphone - 崩溃 : if the file name consists forward slash like "te/st.pdf"

ios - SpriteKit : unexpected physics issue

javascript - iOS 12.2 添加 <audio> 时卡住

ios - 为什么GCD不起作用?

objective-c - 在 Objective C (Mac OS X) 中检测 CPU 架构(32 位/64 位)运行时

ios - 在场景之间传递整数,iphone 游戏 sprite-kit

iphone - 接收器(<ViewController :>) has no segue with identifier - initiating segue from a scene