我目前正在使用iOS 8 SpriteKit API,并且很难用SKFieldNode创建一个有吸引力的磁力。我可以很好地制造一个相反的磁力,但我无法扭转这个领域。这是我目前所拥有的:
touchField = [SKFieldNode magneticField];
touchField.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius:(self.frame.size.height/4 - 34)];
touchField.physicsBody.charge = 3;
此特定字段应与另一个SKSpriteNode交互。
答案 0 :(得分:7)
从iOS 8.1开始,电磁场目前已被打破。它们根本不与物理模拟相互作用。
可能导致您的其他节点移动的原因是它的物理体位于您附加到场的物体内部,模拟通过将节点移开来进行校正。
另外需要注意的是,如果磁场工作正常,则无需为其添加物理主体 - 字段节点本身就足以获得效果。
我收到了一份向Apple提交的漏洞报告。提交重复项会增加错误的优先级,因此如果您提交错误,请提及它是错误18785194的副本。
更新:iOS 8.3 / Xcode 6.3 beta 2中仍然存在此错误。我收到了有关我的错误报告的更多信息的请求,因此至少Apple的某个人知道它,但这是四个测试版之前
更新2:使用iOS 9.0 / Xcode 7.0 beta 2可以部分解决此错误。电磁场现在可以正常工作,但自定义字段仍然存在。
答案 1 :(得分:0)
touchField.strength = -1;
此行将反转您的字段。