在SpriteKit上,有一个SKAction跟随使用for node跟随您使用CGMutablePath创建的路径。像这样:
path = CGMutablePath()
path?.move(to: point1)
path?.addLine(to: point2)
let follow = SKAction.follow(path!, asOffset: false, orientToPath: true, speed: speedPath!)
但我想让播放器沿着路径移动节点,而不是沿着路径移动节点。就像使用bezier路径的直线或椭圆的路径一样,玩家可以沿着路径移动节点。这是图像:
对此有何想法?
答案 0 :(得分:0)
你可以这样做(对不起 - 现在只有伪代码):
touchesBegan {
if touch on the node, set flag.
}
touchesMoved {
if flag not set, return
if touch is on path {
Use SKACtion 'follow path' to move node to touch location
} else {
stop the node's movement /* Touch has moved away from path */
clear flag
}
touchesEnded {
clear flag
stop node if moving
}
答案 1 :(得分:0)
寻找了一段时间之后,我终于得到了想要的东西。 基本上,您需要获取路径上的每个点,无论是直线还是贝塞尔曲线。 然后,您可以沿着最近的点移动节点。
以下是来源: Find Nearest point