用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。
- 计算原点和终点之间的angular度。
- 计算从原点到终点的距离。
- 甚至创build一个圆形或像素的形状节点。 把它看作你将要与之一起绘制的铅笔点。
- 旋转形状节点,使其朝向终点倾斜 – 使用您计算的angular度。
- 创build一个SKAction,根据您计算的距离缩放形状节点的宽度。
- 运行SKAction。
这看起来相对容易,但是如果你想让它更加灵活,就像添加颜色参数一样,你仍然可以inheritance子类。