【问题标题】:Character not moving in the correct direction in Scenekit角色在 Scenekit 中没有朝着正确的方向移动
【发布时间】:2015-04-29 12:23:46
【问题描述】:

我在 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)
}

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

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

【问题讨论】:

  • 您找到解决方案了吗?我也在寻找旋转和移动角色的正确方法。考虑到我有源和目标 SCNVector3 坐标。

标签: ios xcode swift scenekit


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-18
    • 2015-05-11
    相关资源
    最近更新 更多