Ios 可以用SpriteKit动画画一条线吗?

Ios 可以用SpriteKit动画画一条线吗?,ios,objective-c,drawing,line,sprite-kit,Ios,Objective C,Drawing,Line,Sprite Kit,我想用苹果SpriteKit框架从a(100,50)到B(250450)画一条线 到目前为止,我能够使用SKShapeNode绘制这条线并设置其路径属性 我想要达到的是画出这条线动画。假设从A点到B点画线需要2秒钟 我查看了SKAction类,但是默认情况下似乎没有支持此功能的方法 这是我用来创建行的代码: CGMutablePathRef path = CGPathCreateMutable(); CGPathMoveToPoint(path, NULL, 100, 50); CGPathAd

我想用苹果SpriteKit框架从a(100,50)到B(250450)画一条线

到目前为止,我能够使用
SKShapeNode
绘制这条线并设置其路径属性

我想要达到的是画出这条线动画。假设从A点到B点画线需要2秒钟

我查看了
SKAction
类,但是默认情况下似乎没有支持此功能的方法

这是我用来创建行的代码:

CGMutablePathRef path = CGPathCreateMutable();
CGPathMoveToPoint(path, NULL, 100, 50);
CGPathAddLineToPoint(path, NULL, 250.0, 450.0);

SKShapeNode *line = [SKShapeNode node];
line.path = path;
[line setStrokeColor:[UIColor whiteColor]];
[self addChild:line];

谁能给我指出正确的方向吗

您有几种SKAction方法可以实现您想要的:

SKAction performSelector:onTarget:

SKAction waitForDuration:

如果将SKShapeNode子类化,则可以在
SKAction序列中使用这两种方法来绘制时间线

当然,您需要手动计算新的位置,以便在每次迭代中绘制,并确定线条是否已完成,并随着时间的推移结束绘制过程

如果有人有其他方法通过SpriteKit实现此功能,肯定会感兴趣,但如果没有,这应该可以实现

抱歉,我没有时间编写代码,但逻辑应该能让您达到目的

更新:

我想到了另一个选择,我个人认为这更容易一些

  • 计算原点和终点之间的角度
  • 计算从原点到终点的距离
  • 创建圆形或偶数像素的形状节点。把它想象成你要用的铅笔头
  • 旋转形状节点,使其与端点成一定角度-使用您计算的角度
  • 创建基于计算的距离缩放形状节点宽度的SKAction
  • 运行SKAction

  • 这似乎相对容易,但如果您想使其更灵活,如添加颜色参数等,仍然可以将其子类化。

    您能重新回答您的问题吗?通常,“给我代码”类型的请求被认为不适合SO。也许可以详细说明你尝试了什么,什么不起作用。各位,留下评论来解释投票结果是非常有帮助的,而不是让某人感到困惑。谢谢Jasper的提示。但是现在我自己写了一个很好的解决方案。我将SKShapeNode子类化以构造具有起点和终点的线,然后添加了一个自定义SKAction以进行动画绘制。Hmmm。。听起来很像我的答案,但它没有被接受!哈比,我认为这是一个很好的问题,除了最初的代码示例请求。我有一个项目,我打算做一些动画线描,我个人甚至想听听是否有更简单的解决方案。也许可以尝试使用两个精灵。一个是线条的颜色,另一个是背景的颜色。水平缩放它们。