Я пытаюсь объединить несколько узлов спрайтов в единое физическое тело. Например:Объединить несколько физических тел
Я пытаюсь объединить эти три барьера в единый узел спрайтов. Я посмотрел на другие вопросы, и я попытался следующее:
Создание один из узлов родителя, добавляя другие узлы к родителю и установка их нединамическим. Однако это отключает движение дочерних узлов.
Я попытался создать узел с физикой телом всех других барьеров:
SKPhysicsBody(bodies: self.allNodePhysicsBodies)
Я также попытался создать соединение узлов с «родительским» узлом:
let joint = SKPhysicsJointFixed.joint(withBodyA: merge[0].physicsBody!, bodyB: merge[1].physicsBody!, anchor: CGPoint(x: 0, y: 0)) let joint1 = SKPhysicsJointFixed.joint(withBodyA: merge[0].physicsBody!, bodyB: merge[2].physicsBody!, anchor: CGPoint(x: 0, y: 0)) self.physicsWorld.add(joint1) self.physicsWorld.add(joint)
Однако это не объединяет физические тела. Он не создает единого физического тела.
Как это сделать? Я думал, что мой единственный вариант - объединить текстуры, прежде чем я даже создам узел.
EDIT
Попытка объединить барьеры с физикой тела снова:
let ourUnionOfBodies = SKPhysicsBody(bodies: [merge[0].physicsBody!, merge[1].physicsBody!, merge[2].physicsBody!])
ourUnionOfBodies.isDynamic = true
merge[2].physicsBody = ourUnionOfBodies
Но тогда один узел будет иметь тело из трех узлов? В то время как другие двое сохраняют свои отдельные тела. – Pablo
Да, и вы могли бы установить физические тела других 2 узлов на ноль. Единственная часть, которую я не очень хорошо понимаю из вашего вопроса, - это то, какое поведение вы ожидаете от трех барьеров. Предполагая, что вы хотите, чтобы все три барьера могли двигаться вместе, вы могли обновить позиции внешних барьеров (барьеры без физических тел) внутри переопределения func update (...), обратившись к позиции основного узла. Надеясь, что я был ясно в своем ответе, дайте мне знать, если это поможет. – gionti
Хорошо, поэтому вы предлагаете иметь средний с телом, а посторонние без тела, но обновлять свою позицию каждый кадр, чтобы имитировать векторы, получаемые средним узлом? – Pablo