字符在Scenekit中没有朝正确的方向移动

时间:2015-02-26 22:33:46

标签: ios xcode swift scenekit

我在Scenekit中制作一个拳头人物相机并且角色没有相对于旋转移动。相反,它相对于世界轴移动。当玩家向前滑动时,我希望我的游戏如此,角色在自己的x轴上向前移动。不是沿着世界的x轴。我试图用正弦和余弦补偿这个,但它不起作用。这是我的代码:

    func lookGestureRecognized(gesture: UIPanGestureRecognizer) {
    let velocity = gesture.velocityInView(sceneView)
    let rotationAngle = heroNode.presentationNode().rotation.w * heroNode.presentationNode().rotation.y
    var impulse = SCNVector3Make(Float(velocity.x)/50, 0, Float(velocity.y)/50)
    impulse = SCNVector3(x: impulse.x * cos(rotationAngle), y: 0, z: impulse.z * sin(rotationAngle))
    heroNode.physicsBody?.applyForce(impulse, impulse: true)
}

这仍然使角色在滑动的错误方向上移动。有谁知道如何让角色相对于它的旋转移动?

谢谢,如果需要,请要求澄清

1 个答案:

答案 0 :(得分:0)

rotation属性由旋转和旋转角度组成。如果要沿 x 轴检索旋转,可以使用eulerAngles属性。