SKFieldNode силы притяжения магнитного узла SKFieldNode

#sprite-kit #ios8 #skphysicsbody

#комплект спрайтов #ios8 #skphysicsbody

Вопрос:

В настоящее время я работаю с API SpriteKit для iOS 8, и мне трудно создать силу притяжения с помощью SKFieldNode. Я могу создать противодействующую магнитную силу просто отлично, однако я не могу изменить поле. Вот что у меня есть на данный момент:

     touchField = [SKFieldNode magneticField];

    touchField.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius:(self.frame.size.height/4 - 34)];

    touchField.physicsBody.charge = 3;
  

Предполагается, что это конкретное поле взаимодействует с другим SKSpriteNode.

Ответ №1:

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

Вероятно, причиной перемещения вашего другого узла является то, что его физическое тело находится внутри тела, которое вы подключили к своему полю, которое симуляция корректирует, раздвигая узлы друг от друга.

Также следует отметить, что если магнитные поля работали должным образом, вам не нужно добавлять к нему физическое тело — самого узла поля должно быть достаточно для получения эффекта.

Я получил открытый отчет об ошибке, отправленный в Apple. Отправка дубликатов увеличивает приоритет ошибки, поэтому, если вы отправляете один файл, укажите, что это дубликат ошибки 18785194.

ОБНОВЛЕНИЕ: Эта ошибка все еще существует в iOS 8.3 / Xcode 6.3 beta 2. Я получил запрос на получение дополнительной информации о моем отчете об ошибке, так что, по крайней мере, кто-то в Apple знает об этом, но это было четыре бета-версии назад.

ОБНОВЛЕНИЕ 2: Эта ошибка частично устранена в iOS 9.0 / Xcode 7.0 beta 2. Электрические и магнитные поля теперь работают, но пользовательские поля по-прежнему не работают.

Комментарии:

1. Рад, что нашел это; Я сходил с ума. Иногда я задаюсь вопросом, тестируют ли они что-то перед выпуском. Мне тоже не везет с customFieldWithEvaluationBlock .

2. customFieldWithEvaluationBlock: также неисправен. В моем отчете об ошибке это также упоминается

3. По-прежнему ли нарушены электрические и магнитные поля в iOS 8.2 и 8.3?

4. @Florian Да, это так. Я добавил обновление статуса к своему ответу.

Ответ №2:

 touchField.strength = -1;  
  

Эта строка изменит ваше поле.