У меня есть два узла SKShapeNode, которые я хочу привязать друг к другу. Когда я нажимаю для выполнения действия, я хочу, чтобы два узла расширяли свою высоту и, снова нажав, я хочу, чтобы они отступили. Проблема состоит в том, что два узла не анимировать, как и ожидалось:Расширение SKShapeNodes с соединением
До анимации: (нераскрытом)
После анимации: (расширенный)
Оба узла расширяется, но оказывается, что один идет под другим. Я бы хотел, чтобы они «толкали» друг друга.
override func didMoveToView(view: SKView) {
let size = CGSize(width: view.frame.width, height: 100)
let firstSection = SKShapeNode(rectOfSize: size)
firstSection.physicsBody = SKPhysicsBody(rectangleOfSize: size)
firstSection.fillColor = SKColor.purpleColor()
firstSection.physicsBody?.affectedByGravity = false
firstSection.position = CGPoint(x: 500, y: 400)
firstSection.name = "section"
self.addChild(firstSection)
let secondSection = SKShapeNode(rectOfSize: size)
secondSection.fillColor = SKColor.blueColor()
secondSection.physicsBody = SKPhysicsBody(rectangleOfSize: size)
secondSection.physicsBody?.affectedByGravity = false
secondSection.position = CGPoint(x: 500, y: 300)
secondSection.name = "section"
self.addChild(secondSection)
let joint = SKPhysicsJointSpring.jointWithBodyA(firstSection.physicsBody, bodyB: secondSection.physicsBody, anchorA: firstSection.position, anchorB: secondSection.position)
self.physicsWorld.addJoint(joint)
}
Я думаю, вам нужно настроить физический мир для представления. – Kendel
Я думал, что на сцене был физический мир по умолчанию? Если у меня нет сустава, объекты отталкиваются друг от друга, как ожидалось, но не сжимаются из-за отсутствия соединения –
Изменение размера узла не обязательно приведет к изменению его физического состояния. В вашем GameViewController, если вы установите skView.showsPhysics = true, вы можете это увидеть. – Okapi