#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;
Эта строка изменит ваше поле.