Ios SpriteKit中的可弯曲臂旋转-在点处旋转
我试图用SpriteKit模拟一个可弯曲的手臂。我有一个上臂Ios SpriteKit中的可弯曲臂旋转-在点处旋转,ios,swift,sprite-kit,rotation,Ios,Swift,Sprite Kit,Rotation,我试图用SpriteKit模拟一个可弯曲的手臂。我有一个上臂SKShapeNode和一个下臂SKShapeNode 如何旋转下臂,使其在肘部旋转,而不是在自身旋转 这是我的直臂,上臂为棕褐色,下臂为青色 这是下臂旋转-90度后的样子 我如何模拟下臂在肘部连接到上臂?我尝试了多个SKConstraints,但找不到一个适合我的。是否要使用SKPhysicsJointPin 以下是可用的Sprite套件接头: 可以使用“物理世界”添加或删除关节。创建关节时,连接关节的点始终在场景的坐标系中指定
SKShapeNode
和一个下臂SKShapeNode
如何旋转下臂,使其在肘部旋转,而不是在自身旋转
这是我的直臂,上臂为棕褐色,下臂为青色
这是下臂旋转-90度后的样子
我如何模拟下臂在肘部连接到上臂?我尝试了多个
SKConstraint
s,但找不到一个适合我的。是否要使用SKPhysicsJointPin
以下是可用的Sprite套件接头:
可以使用“物理世界”添加或删除关节。创建关节时,连接关节的点始终在场景的坐标系中指定。这可能需要在创建关节之前首先将节点坐标转换为场景坐标
要在游戏中使用物理关节,请执行以下步骤:
SKPhysicsJointPin
接头实现的“弯头”将上臂和下臂两个节点固定在一起。我们通过取上臂和下臂重叠区域的中间来计算“肘部”位置-这是非常粗糙的,应该改进
let elbowArea = lowerArm.frame.intersection(upperArm.frame)
设elbowPosition=CGPoint(x:elbowArea.midX,y:elbowArea.midY)
还应通过关节的属性设置销关节(弯头)的旋转限制:
var shouldEnableLimits:Bool
一个布尔值,指示
销接头的旋转限制在特定的值范围内
var lowerAngleLimit:CGFloat
销允许的最小角度
关节,以弧度表示
var上限角度限制:CGFloat
销允许的最大角度
关节,以弧度表示
您想使用
SKPhysicsJointPin
以下是可用的Sprite套件接头:
可以使用“物理世界”添加或删除关节。创建关节时,连接关节的点始终在场景的坐标系中指定。这可能需要在创建关节之前首先将节点坐标转换为场景坐标
要在游戏中使用物理关节,请执行以下步骤:
SKPhysicsJointPin
接头实现的“弯头”将上臂和下臂两个节点固定在一起。我们通过取上臂和下臂重叠区域的中间来计算“肘部”位置-这是非常粗糙的,应该改进
let elbowArea = lowerArm.frame.intersection(upperArm.frame)
设elbowPosition=CGPoint(x:elbowArea.midX,y:elbowArea.midY)
还应通过关节的属性设置销关节(弯头)的旋转限制:
var shouldEnableLimits:Bool
一个布尔值,指示
销接头的旋转限制在特定的值范围内
var lowerAngleLimit:CGFloat
销允许的最小角度
关节,以弧度表示
var上限角度限制:CGFloat
销允许的最大角度
关节,以弧度表示
虽然此链接可以回答问题,但最好在此处包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,仅链接的答案可能无效。-@Rob你是对的,尽管链接是作为额外的信息,而不是答案本身(这是“使用SKPhysicsJoint”,OP打算做他们的研究)。我会改进它。虽然这个链接可以回答这个问题,但最好在这里包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,仅链接的答案可能无效。-@Rob你是对的,尽管链接是作为额外的信息,而不是答案本身(这是“使用SKPhysicsJoint”,OP打算做他们的研究)。我会改进的。