在不使用SKAction followPath的情况下以递增方式在路径周围移动节点

时间:2015-04-16 19:39:48

标签: ios sprite-kit skaction

我希望有一条路径,我的节点可以按需传播。

例如,我想在屏幕中间有一个圆圈,当我点击屏幕的左侧时,我的SKSpriteNode将在圆圈上以逆时针方向移动(如果我点击它,则相同)屏幕右侧)。

根据我的研究,我可以使用SKShapeNode,CGPathRef甚至UIBezierPath创建循环路径。创建路径不是问题所在。在我研究过这个主题的所有实例中,大多数人只是使用[SKAction followPath:path duration:1.0],这使得节点在1.0秒内完全绕过圆形路径。我希望能够点击左/右,并且每次点击只移动增量空间。 (如果有人玩Super Hexagon,请考虑该游戏的流畅循环动作)

*注意:我只使用圆形路径作为示例,因此我并不特别需要有关如何绕圆圈移动的特定指针,而是更多任何形状的任何路径。

1 个答案:

答案 0 :(得分:1)

您可以使用CGPath创建任何类型的路径形状。这使您能够仅创建移动节点所需的路径。要使用圆形示例,请创建90度圆弧路径,您的节点将分别移动4次以完成整圆。

如果您不想使用路径,还可以使用SKAction moveBy x,y,duration命令。将其中的几个绑在一起并按块顺序使用它们,你就拥有了一个通用路径函数。