我有一条线,让我们说一个圆形的矩形,画在屏幕上(从CGPath绘制的SKShapeNode)。现在我想要一个节点跟随圆角矩形,顺时针或逆时针。我已经使用SKAction的followPath完成了这个:asOffset:orientToPath:duration:方法,如果节点从路径的起点开始,它可以正常工作。
问题是,节点可以放在圆角矩形的任何位置,当我按住一个按钮时,我希望它从它当前所在的点开始跟随矩形。当我释放按钮时,节点停在原处。现在,如果我停止节点并再次启动它,则从节点开始跟随一个新的圆角矩形。
有没有简单的方法来实现这个目标?
答案 0 :(得分:0)
您似乎可以使用新引入的SKConstraint类(https://developer.apple.com/library/prerelease/ios/documentation/SpriteKit/Reference/SKConstraint_Ref/)。
如需快速介绍,请参阅WWDC2014的会话606:“SpriteKit中的新功能”。
这是调整精灵相对于另一个精灵的位置/旋转/距离的快速而简单的方法。
你真正需要的是
+ (instancetype)orientToNode:(SKNode *)node
offset:(SKRange *)radians
答案 1 :(得分:0)
这是一个难题。我可以想到两个解决方案:
每次按住时,为要跟随的节点构建一个新的CGPath,该节点从当前节点停止的点开始。
保留对您正在运行的SKAction对象的引用。当您停止在屏幕上按住时,不要停止操作,而是将其speed
属性设置为0.0
。这将有效地暂停动画。再次按下时,将速度设置回1.0。