Как сделать пружинное соединение как мышцы? - PullRequest
0 голосов
/ 24 декабря 2018

Для игры мне нужно реализовать пружинное соединение как мускул?Чтобы сжимать и разжимать мышцы - мне нужно изменить расстояние между пружинными суставами, но я не знаю, как это сделать.

Я написал свое расширение для класса 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)
    }
}
...