【发布时间】:2018-02-04 12:47:36
【问题描述】:
我目前正在使用 SceneKit 开发 ARKit 游戏,但在控制和移动节点时遇到了麻烦。游戏的布局非常简单,我有一个节点代表一个拥有动态物理主体的坦克。我可以成功地将节点添加到地图中,但是我想使用操纵杆来控制节点。
我正在尝试修改坦克的速度属性,以便当操纵杆被向上推时,坦克会朝着它所面对的方向向前移动。为此,我首先尝试简单地设置速度属性:
t.physicsBody?.velocity = SCNVector3Make(0, 0, -0.15)
这导致坦克以所需的速度移动,但方向不正确。据我了解, -z 方向是向前的方向。 Apple 的本地与世界空间文档非常模糊,在网上查看后,我发现了这篇堆栈溢出文章SceneKit physics add velocity in local space。我已经尝试转换为仍然没有达到预期效果的父节点。我还尝试使用具有更新值的表示节点的物理主体,但两种方式都会导致抖动、不均匀和不可预测的运动。
我会使用力,但是我希望 SCNode 能够在没有加速的情况下进行非常直接和卡通化的运动。任何帮助了解正在发生的事情以及 SceneKit 处理运动的方式将不胜感激。
【问题讨论】: