用SpriteKitanimation可以画出一条线吗?

我想从苹果SpriteKit框架中让我们说A(100,50)到B(250,450)。

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

我想要实现的是画这条线。 可以说,从A点到B点画线需要2秒钟的时间。

我看着SKAction类,但似乎没有任何方法默认支持此function。

这是我用来创build该行的代码:

 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:

如果您创buildSKShapeNode的子类,则可以在SKAction sequence使用这两种方法随着时间的推移绘制线。

您当然需要手动计算绘制到每个迭代的新位置,并确定该行是否已完成,并随着时间过程结束绘图。

绝对有兴趣的,如果有人有另一种方式来实现这个function通过SpriteKit,但如果不是,这应该工作。

对不起,没有时间来编写代码,但逻辑应该让你在那里。

更新:

我想到了另一个我个人觉得更容易的select。

  1. 计算原点和终点之间的angular度。
  2. 计算从原点到终点的距离。
  3. 甚至创build一个圆形或像素的形状节点。 把它看作你将要与之一起绘制的铅笔点。
  4. 旋转形状节点,使其朝向终点倾斜 – 使用您计算的angular度。
  5. 创build一个SKAction,根据您计算的距离缩放形状节点的宽度。
  6. 运行SKAction。

这看起来相对容易,但是如果你想让它更加灵活,就像添加颜色参数一样,你仍然可以inheritance子类。