Для игры мне нужно реализовать пружинное соединение как мускул?Чтобы сжимать и разжимать мышцы - мне нужно изменить расстояние между пружинными суставами, но я не знаю, как это сделать.
Я написал свое расширение для класса SKPhysicsJointSpring ().Но это не работает, как настоящая мышца
Как сделать пружинное соединение, как мышца?
extension SKPhysicsJointSpring {
func addMuscleForce(force: CGFloat) {
let node1 = self.bodyA
let node2 = self.bodyB
let disp1 = CGVector(dx: node2.node!.position.x-node1.node!.position.x, dy: node2.node!.position.y-node1.node!.position.y)
let normal1 = CGVector(dx: disp1.dx, dy: disp1.dy)
let impulse1 = CGVector(dx: normal1.dx*force, dy: normal1.dy*force)
node1.velocity = CGVector(dx: node1.velocity.dx + impulse1.dx, dy: node1.velocity.dy + impulse1.dy)
let disp2 = CGVector(dx: node1.node!.position.x-node2.node!.position.x, dy: node1.node!.position.y-node2.node!.position.y)
let normal2 = CGVector(dx: disp2.dx, dy: disp2.dy)
let impulse2 = CGVector(dx: normal2.dx*force, dy: normal2.dy*force)
node2.velocity = CGVector(dx: node2.velocity.dx + impulse2.dx, dy: node2.velocity.dy + impulse2.dy)
}
}