【问题标题】:Getting direction of object moved by the physics engine获取物理引擎移动的对象的方向
【发布时间】:2014-11-15 07:27:35
【问题描述】:

我正在使用 spritekit 来了解游戏中的物理行为,当 sprite 节点球从表面反弹时,物理引擎将自动计算其新方向。

我如何在代码中获得这个新方向?

我正在使用 swift,xcode spritekit。但是object c spritekit (cocos2d) 也很好

(目的是在弹跳的球后面得到一条火迹,但我不知道如何根据球的运动矢量旋转粒子发射器。发射器当前被添加为球节点的子节点)

【问题讨论】:

  • 利用 zRotation 属性。
  • @Zemoon 先生,你是天才、学者和绅士
  • 将发射器作为球节点的子节点有什么问题?
  • 问题是,如果我们只应用一个矢量来移动它,物理引擎不会旋转球,所以发射器不会改变它的发射角度
  • 我们得到的是球和它的子节点在向量应用的方向上移动,然后当球从场景中的一个物理节点体反弹时,向量改变方向,但是球仍然朝向同一个方向(同样的问题)

标签: objective-c swift sprite-kit skphysicsbody skphysicsworld


【解决方案1】:

要获得“方向”,您应该阅读节点的physicsBodyvelocity 属性。

要旋转你的粒子发射器,你应该修改节点的zRotation 属性。

【讨论】:

    【解决方案2】:

    嗯,获得节点旋转的最佳方法是获得eulerAngles。但由于它显示弧度,我转换为度数。这是我在获取相机节点旋转时得到的代码

    print(round(GLKMathRadiansToDegrees(Float(gameController.camera.eulerAngles.z))))
    

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-16
      • 2018-10-16
      • 1970-01-01
      • 1970-01-01
      • 2017-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多