我有一个'月亮',其中有一个重力场,'月亮'设置为'affectedByGravity = NO',并且不会受到场景重力场的影响。
然而,我有一个'小行星',它也有'affectedByGravity = NO'设置,它仍然被'月亮'所吸引,但不会被场景重力场吸引。
这是一个错误还是我误解了'affectedByGravity'是如何工作的?
编辑:摘自Apple文档
定义力量如何影响物理身体 affectedByGravity 属性 一个布尔值,指示此物理主体是否受物理世界的重力和场景中任何物理场施加的重力影响。
宣言 迅速 var affectedByGravity:Bool 讨论 物理世界的重力属性定义了应用于场景中基于体积的物体的重力。默认值是true。在基于边缘的实体上忽略此属性,这些实体已不受重力影响。
导入声明 导入SpriteKit
状况 适用于iOS 7.0及更高版本。
答案 0 :(得分:6)
affectedByGravity
属性仅适用于场景physicsWorld
,而不适用于重力场。如果你希望小行星不受月球的影响,你必须将物理实体的fieldBitMask
设置为0(或者重力场的bitMask以外的值)。
阅读Apple文档中的Adding Physics Fields To Your Scene部分。