I need the arms and hands to rotate around the center of the hook, as shown in the image below, without separating or changing their shape (no changes in the angles between the arms and hands, just rotating by A), as in the image below:

I tried to rotate the weapon, but it made them split and change shape. You can check my code below:
let hookCategoryName = "hook" let leftArmCategoryName = "leftArm" let rightArmCategoryName = "rightArm" let leftHandCategoryName = "leftHand" let rightHandCategoryName = "rightHand" let hookCategory : UInt32 = 0x1 << 0 let leftArmCategory : UInt32 = 0x1 << 1 let rightArmCategory : UInt32 = 0x1 << 2 let leftHandCategory : UInt32 = 0x1 << 3 let rightHandCategory : UInt32 = 0x1 << 4 extension Int { var degreesToRadians: Double { return Double(self) * .pi / 180 } } extension FloatingPoint { var degreesToRadians: Self { return self * .pi / 180 } var radiansToDegrees: Self { return self * 180 / .pi } } class GameScene: SKScene, SKPhysicsContactDelegate { var hook = SKSpriteNode(imageNamed: "hook") var leftArm = SKSpriteNode(imageNamed: "arm") var rightArm = SKSpriteNode(imageNamed: "arm") var leftHand = SKSpriteNode(imageNamed: "leftHand") var rightHand = SKSpriteNode(imageNamed: "rightHand") override func didMove(to view: SKView) { self.physicsWorld.gravity = CGVector(dx: 0, dy: 0) self.physicsWorld.contactDelegate = self var yellowBg = SKSpriteNode(imageNamed: "yellowBg") yellowBg.position = CGPoint(x: frame.midX, y: frame.midY) yellowBg.zPosition = 2 addChild(yellowBg) hook.position = CGPoint(x: frame.midX, y: frame.midY + frame.midY/2) hook.zPosition = 5 hook.name = hookCategoryName hook.physicsBody = SKPhysicsBody(rectangleOf: hook.frame.size) hook.physicsBody?.categoryBitMask = hookCategory hook.physicsBody?.isDynamic = false addChild(hook) rightArm.anchorPoint = CGPoint(x: 0.5, y: 1) rightArm.position = hook.position rightArm.zPosition = 5 rightArm.name = rightArmCategoryName rightArm.physicsBody = SKPhysicsBody(rectangleOf: rightArm.frame.size) rightArm.physicsBody?.categoryBitMask = rightArmCategory rightArm.physicsBody!.isDynamic = true addChild(rightArm) leftArm.anchorPoint = CGPoint(x: 0.5, y: 1) leftArm.position = hook.position leftArm.zPosition = 5 leftArm.name = leftArmCategoryName leftArm.physicsBody = SKPhysicsBody(rectangleOf: leftArm.frame.size) leftArm.physicsBody?.categoryBitMask = leftArmCategory leftArm.physicsBody!.isDynamic = true addChild(leftArm)
Also, the rotation of the hook does not affect the hands and arms, as shown in the figure below, when the above code is executed:

How can I get the rotation on the first image of the image?
source share