Ios SpriteKit SKPhysicsBody破碎碰撞

Ios SpriteKit SKPhysicsBody破碎碰撞,ios,swift,ipad,sprite-kit,skphysicsbody,Ios,Swift,Ipad,Sprite Kit,Skphysicsbody,我有一个SKSpriteNode,它有一个静态体,由带有edgeChainFromPath的凹形路径生成。让我们把这个节点称为房子 我还有另一种SKSpriteNodes,它有一个动态的方形体,由rectangleOfSize生成。让我们将此节点称为一个框 在我的场景中,盒子被扔进房子,因为它们都有身体,所以盒子应该与房子碰撞并反弹离开 我正在滚动场景,因此创建了与上面描述的房子完全相同的新实例 我遇到的问题是,一些房屋的碰撞完全或部分破裂。一些房屋与长方体完全按照它们应该的方式碰撞,一些房屋只

我有一个
SKSpriteNode
,它有一个静态体,由带有
edgeChainFromPath
的凹形路径生成。让我们把这个节点称为房子

我还有另一种
SKSpriteNode
s,它有一个动态的方形体,由
rectangleOfSize
生成。让我们将此节点称为一个

在我的场景中,盒子被扔进房子,因为它们都有身体,所以盒子应该与房子碰撞并反弹离开

我正在滚动场景,因此创建了与上面描述的房子完全相同的新实例

我遇到的问题是,一些房屋的碰撞完全或部分破裂。一些房屋长方体完全按照它们应该的方式碰撞,一些房屋只在身体的一些随机部分上与长方体碰撞,而一些房屋则完全忽略与长方体的碰撞

这个问题只会发生在iPad上,而不会发生在iPhone上。发生在iPad模拟器和真实iPad设备上

该问题完全随机出现,并且是随机出现的

我还尝试使用
edgeLoopFromPath
创建housebody,但问题仍然存在

另外,我在画物理图,可以看到房子的物理实体与它应该的完全一样

对于场景或节点,没有其他值得讲述的特殊之处

我在
ios9
中使用
SpriteKit
Swift


更新

问题似乎在于设置房屋节点上的比例。我必须这样做,以便在所有屏幕尺寸上都具有通用外观


仍在寻找解决方案/解决方法…

这可能是因为edgeLoopFromPath为您的房子创建了一个带边缘的空心盒子,而不是一个有体积的盒子


我会尝试使用preciseCollisionDetection并将其添加到您的箱子和房屋中。

这可能是因为edgeLoopFromPath为您的房屋创建了一个带边缘的空心箱子,而不是一个有体积的箱子


我会尝试在你的盒子和房子中使用并添加preciseCollisionDetection。

你是否启用了可视物理表示并检查了一切是否正常?@Whirlwind就像我说的:“我正在绘制物理”。所以是的场景中是否有快速移动的对象?另外,如果你手动改变可能发生碰撞的节点的位置,那么你可能会得到奇怪的行为…@Whirlwind是的,盒子是快速移动的对象,因为它们是受脉冲作用的,但它们移动得有多快并不重要。我尝试过改变速度,但仍然得到相同的结果。谈论手动更改位置:我不是手动更改场景中任何节点的位置。我通过移动iOS 9.1中引入的新摄影机节点来滚动场景)尝试在快速移动的对象上设置usesPreciseCollisionDetection,看看是否有任何变化。如果没有手动更改参与物理模拟的任何节点上的位置,请仔细检查。手动更改是指直接更改位置属性,或者使用SKaction.moveXxx方法。您是否启用了可视物理表示并检查了一切是否正常?@whirwind就像我说的:“我正在绘制物理”。所以是的场景中是否有快速移动的对象?另外,如果你手动改变可能发生碰撞的节点的位置,那么你可能会得到奇怪的行为…@Whirlwind是的,盒子是快速移动的对象,因为它们是受脉冲作用的,但它们移动得有多快并不重要。我尝试过改变速度,但仍然得到相同的结果。谈论手动更改位置:我不是手动更改场景中任何节点的位置。我通过移动iOS 9.1中引入的新摄影机节点来滚动场景)尝试在快速移动的对象上设置usesPreciseCollisionDetection,看看是否有任何变化。如果没有手动更改参与物理模拟的任何节点上的位置,请仔细检查。手动更改是指直接更改位置属性,或使用SKaction.moveXxx方法。