Ios 如何沿另一个节点的方向移动节点

Ios 如何沿另一个节点的方向移动节点,ios,swift,sprite,Ios,Swift,Sprite,我在Stack overflow上找到了答案,但是我想对它做一个修改,我就是想不出来。这个问题的答案显示了如何使导弹朝你手指的方向移动。但是,我希望它向另一个节点(在我的例子中是一艘船)的方向移动,这意味着它不会跟随我的手指,而是跟随轮船。政府如何做到这一点 非常感谢非常简单: 1) 使用update方法,而不是touchesMoved 2) 使用玩家的位置代替触摸位置 override func update(currentTime: NSTimeInterval) { le

我在Stack overflow上找到了答案,但是我想对它做一个修改,我就是想不出来。这个问题的答案显示了如何使导弹朝你手指的方向移动。但是,我希望它向另一个节点(在我的例子中是一艘船)的方向移动,这意味着它不会跟随我的手指,而是跟随轮船。政府如何做到这一点

非常感谢

非常简单:

1) 使用
update
方法,而不是
touchesMoved

2) 使用玩家的位置代替触摸位置

override func update(currentTime: NSTimeInterval) {

        let location = player.position

        //Aim
        let dx = location.x - missile.position.x
        let dy = location.y - missile.position.y
        let angle = atan2(dy, dx)

        missile.zRotation = angle

        //Seek
        let vx = cos(angle) * missileSpeed
        let vy = sin(angle) * missileSpeed

        missile.position.x += vx
        missile.position.y += vy
}

谢谢你的回答。它工作得很好,但这是一个问题。当两个节点碰撞时,导弹的位置到处都是,这意味着它开始疯狂地旋转。我怎么能解决这个问题呢?我试着创造一个if-else雄蕊,说如果它们触碰Z的位置就会改变,但没有改变work@HarrisonR当玩家和导弹发生接触时会发生什么取决于你。。。您必须实施接触检测并采取适当的措施(删除节点、进行爆炸等)。这只是一个如何实现搜索/瞄准逻辑的示例。任何超出此范围的内容都超出了链接问题的范围,也超出了此问题的范围。我理解这一点,但我希望它在接触时停止旋转。我该怎么做?