Swift SpriteKit静态节点旋转?

Swift SpriteKit静态节点旋转?,swift,sprite-kit,Swift,Sprite Kit,--链接到xcode项目 我在游戏中创建了一个地板,并添加了敌方士兵作为spritenodes,我还用枪发射spritenode子弹 在玩游戏大约1分钟后,地板似乎开始旋转并击中我的所有其他节点 floor.position = CGPointMake(size.width/2,size.height/2 - 130) floor.name = "floor" //add reference to the button. floor.zPosition = 1 ad

--链接到xcode项目

我在游戏中创建了一个地板,并添加了敌方士兵作为spritenodes,我还用枪发射spritenode子弹

在玩游戏大约1分钟后,地板似乎开始旋转并击中我的所有其他节点

   floor.position = CGPointMake(size.width/2,size.height/2 - 130)
    floor.name = "floor" //add reference to the button.
    floor.zPosition = 1
    addChild(floor)

    floor.physicsBody = SKPhysicsBody(texture: floor.texture, size: floor.size)
    floor.physicsBody?.dynamic = false
    floor.physicsBody?.affectedByGravity = false
    floor.physicsBody?.allowsRotation = false
    floor.physicsBody?.usesPreciseCollisionDetection = true

当地板砖节点重叠且另一个物理实体正在对其施加力时,有时会发生这种情况。确保平铺没有重叠,并运行更多测试


另一方面,您不应该对您的地板使用PreciseCollisionDetection,因为它会产生额外的开销。将其用于更快移动的节点,如子弹。

尝试启用“调试物理”,以查看发生这种情况时物理实体的外观。感谢您的回答,地板砖绝对不会重叠。我不断地在地板上繁殖敌人,也不断地在地板上射出子弹,弹射到敌方士兵的节点上:这意味着地板上有很多碰撞,这只是一只虫子吗?@FrankduPlessis-碰撞的次数应该不会影响静态瓷砖的移动。我建议你仔细检查一下是否真的没有重叠。如果是这种情况,您可以尝试使用SKConstraint将节点锁定到位。