【问题标题】:Will nodes from different layers interact不同层的节点会交互吗
【发布时间】:2017-01-13 14:00:13
【问题描述】:

我已向 GameScene (GS) 添加了各种层(即 HUD、得分层)。我还添加了一个层来保存和管理从 Player 实体(主层)产生的射弹。

问题是虽然我为所有层中的所有节点设置了碰撞和类别位掩码,但射弹不会与 GS 主层中的任何节点交互。

那么问题是,如果节点包含在 GS 的不同层中,它们会相互交互吗?

提前致谢

PS 所有节点都是具有精灵和物理组件的实体

【问题讨论】:

  • 请记住,如果您对物理交互感兴趣,那么至少一个物理体必须是动态的。所以制作一个projectile.physicsBody.dynamic = true。

标签: sprite-kit swift2 game-physics


【解决方案1】:

答案是肯定的,无论您的节点是否具有相同的父节点或被安排到多个节点(父节点、层,随意调用它们),一切都会照常工作......您可能会发现有用的知识, 是那个节点树(这是节点所在的地方)与物理世界(这是物理实体所在的地方)是分开的。

【讨论】:

  • 谢谢,好消息是我现在明白了,坏消息是我不知道为什么没有交互,两个节点都有物理体和相互设置的碰撞/类别位掩码,但没有交互。弹丸是tej GS中唯一不与其他节点交互的节点
  • 游戏场景的物理世界是否适用于所有子层?
  • @dancingbush 可能是因为您没有正确设置类别、联系人和碰撞位掩码。或者因为你没有设置物理世界委托或者你犯了其他错误。但那是另一个话题,你应该问一个新问题......
  • @dancingbush 正如我所说。将物理世界视为物理实体所在的独立事物。在那个世界中,物理引擎向它们施加力和脉冲,并基于此,节点的位置会相应更新......所以,是的,再次。如果 physicsBody.dynamic property 设置为 true,所有附加了物理实体的节点都将受到物理模拟的影响。
  • 非常感谢,会再去看看,如果/当我找到解决方案时会更新
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-24
相关资源
最近更新 更多