SpriteKit动画可以画出一条线吗?

我想用Apples SpriteKit Framework从A(100,50)到B(250,450)画一条线。

到目前为止,我可以使用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 sequence使用这两种方法随着时间的推移绘制线。

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

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

对不起,没有时间对此进行编码,但逻辑应该会让你到那里。

更新:

我想到了另一种我个人认为更容易的选择。

  • 计算原点和终点之间的角度。
  • 计算从原点到终点的距离。
  • 甚至可以创建一个圆形或像素的形状节点。 把它想象成你将要与之一起绘制的铅笔点。
  • 旋转形状节点,使其朝向终点倾斜 - 使用您计算的角度。
  • 创建一个SKAction,根据您计算的距离缩放形状节点的宽度。
  • 运行SKAction。
  • 这看起来相对容易,但如果您想使其更加灵活,您仍然可以继承子类,例如添加颜色参数等。

    链接地址: http://www.djcxy.com/p/75215.html

    上一篇: Is it possible to draw a line with SpriteKit animated?

    下一篇: Boost Program Options won't work with GLIBCXX