почему два узла с затронутымByGravity = NO притягиваются к гравитационному полю?

У меня есть «Луна», в которой есть гравитационное поле, а «Луна» установлена ​​​​с «affectedByGravity = NO» и не подвергается влиянию гравитационного поля сцены.

Однако у меня есть «Астероид», который также имеет набор «affectedByGravity = NO», и он по-прежнему притягивается к «Луне», но не к гравитационному полю сцены.

Это ошибка или я неправильно понял, как работает «affectedByGravity»?

РЕДАКТИРОВАТЬ: Выдержка из документов Apple

Определение того, как силы воздействуют на физическое тело Свойство createdByGravity Логическое значение, указывающее, влияет ли на это физическое тело гравитация физического мира и гравитация, создаваемая какими-либо физическими полями в сцене.

Объявление SWIFT var visibleByGravity: Bool Обсуждение Свойство гравитации физического мира определяет гравитационные силы, применяемые к объемным телам в сцене. Значение по умолчанию верно. Это свойство игнорируется для тел с ребрами, которые уже не подвержены влиянию гравитации.

Заявление об импорте import SpriteKit

Доступность Доступно в iOS 7.0 и более поздних версиях.


person Duncan Groenewald    schedule 17.01.2015    source источник


Ответы (1)


Свойство affectedByGravity предназначено только для physicsWorld сцены, а не для гравитационного поля. Если вы хотите, чтобы луна не влияла на астероид, вам нужно установить fieldBitMask его физического тела равным 0 (или значением, отличным от значения битовой маски гравитационного поля).

Ознакомьтесь с Добавление физических полей в вашу сцену в документации Apple.

person ZeMoon    schedule 17.01.2015
comment
Согласно документации Apple, это также касается гравитации, создаваемой физическими полями. Смотрите обновленный вопрос, я должен был включить это в исходный вопрос. В любом случае спасибо за ссылку - я не мог найти это объяснение сам. - person Duncan Groenewald; 18.01.2015
comment
Вы правы насчет документации. Я никогда не видел, чтобы уязвимость ByGravity = NO работала для SKFieldNode. Это либо ошибка, либо ошибка в документах. Отчет об ошибке должен быть отправлен в Apple. - person ZeMoon; 18.01.2015