【问题标题】:Swift SpriteKit static nodes rotating?Swift SpriteKit 静态节点旋转?
【发布时间】:2015-06-23 00:49:09
【问题描述】:

https://github.com/lemubru/zombie --链接到xcode项目

我在我的游戏中创建了一个地板并将敌方士兵添加为精灵节点,我还用枪射击精灵节点子弹。

玩了大约 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

【问题讨论】:

  • 尝试打开调试物理,看看发生这种情况时物理体的样子。

标签: swift sprite-kit


【解决方案1】:

这有时会发生在您的地砖节点重叠并且另一个物理体正在向它们施加力时。确保您的图块没有重叠并运行更多测试。

附带说明,您的地板不应使用 usesPreciseCollisionDetection,因为它会产生额外的开销。而是将其用于更快移动的节点,例如子弹。

【讨论】:

  • 谢谢解答,地砖绝对不重叠。我不断在地板上方生成敌人,并不断向地板发射子弹以弹射到敌方士兵节点:这意味着在地板上发生了很多碰撞,这只是一个错误吗?
  • @FrankduPlessis - 碰撞次数应该对静态瓷砖移动没有影响。我建议你仔细检查是否真的没有重叠。如果是这种情况,您可以尝试使用 SKConstraint 将节点锁定到位。 developer.apple.com/library/prerelease/mac/documentation/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多