【问题标题】:Magnetic field affects unwanted sprite磁场影响不需要的精灵
【发布时间】:2016-07-20 12:54:51
【问题描述】:

我有一个玩家精灵,当用户在屏幕上拖动手指时它会移动。我已经实现了玩家精灵在其周围产生磁排斥力的能力。 我的困境是,当电源打开时,玩家精灵本身会在不应该影响我的时候受到影响。

我已在所需的精灵和字段节点上设置了正确的fieldBitMaskcategoryBitMask,但仍然无法正常工作。 这是我的玩家physicsBody配置:

physics.affectedByGravity = false
physics.allowsRotation = false
physics.dynamic = true;
sprite.physicsBody?.fieldBitMask = 0

【问题讨论】:

  • 这对我们没有任何意义,提供可以真正重现您的错误的代码。从我所见,physics 和physicsBody 可能是两个不同的东西,但由于您没有提供足够的信息,因此无法从中看出这一点。
  • 尝试设置玩家physics.dynamic = false
  • 感谢 Simone,成功了!
  • @user2504879 不客气,我会添加为解决方案

标签: ios swift sprite-kit physics skfieldnode


【解决方案1】:

设置播放器节点

physics.dynamic = false

【讨论】:

  • 这是一种变通方法,它不能解决问题。为什么玩家会有物理身体,但不是动态的。 @user2504879 将来会遇到更多问题(他实际上可能希望玩家精灵通过动态)
  • @Knight0fDragon 成功了。 user2504879 :“当用户在屏幕上拖动手指时移动的玩家精灵”可能是他的物理动态并不重要。如果很重要,那么获得有关如何将字段添加到精灵的更多信息是正确的。
  • 这就是我发表评论的原因,解决方法应该始终是最后的手段,通常它们应该与您无法修复的实际错误有关。在这种情况下,@user2504879 需要提供更多信息才能让代码正常工作。
  • @Knight0fDragon 确实,当 SKFieldNode 在场景中处于活动状态时,玩家不必是动态的。使用它后,我将玩家的物理设置回physics.dynamic = true。它完美地工作
  • @user2504879 它可以工作,但不能完美工作。如果磁场内有物体,你会怎么做?一直来回翻滚?您将继续使用创可贴来解决这个问题,最终这些创可贴将变得如此难以管理,以至于您将不得不重新开始。你最好学习如何以正确的方式做事,这样你以后就不必担心创可贴的修复了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多