美文网首页Cocos CreatorCocos CreatorCocosCreator
CreatorPrimer|贝塞尔曲线动作小工具

CreatorPrimer|贝塞尔曲线动作小工具

作者: 张晓衡 | 来源:发表于2019-05-26 06:34 被阅读136次

    在使用Cocos Creator做曲线动作时,总是有些刻意逃避使用cc.bezierTo(贝塞尔曲线),而是简单使用cc.moveTo、cc.JumpTo来模拟,后来更偷懒直接使用Creator的动画编辑器来生成,如图所示:

    动画编辑器生成曲线运动

    虽然上面的方法也能解决一些问题,但总是舍近求远,有简单的方法面不用,原因是自己没搞明白。

    为了能将cc.bezierTo真正利用起来,我结合cc.Graphics组件制作了一个简易的贝塞尔曲线编辑工具,看下图:

    image.png

    图中是两条曲线,在编辑器中直接改变起点、终点、控制点1、控制点2的位置,即可实时显示出曲线路径。

    左则DrawBezier组件面板中有一个Params的文本属性,就是cc.bezierTo可使用到的参数,结构如下:

    [
      [  //曲线一
        {"x":-123,"y":214},  //起点
        {"x":-418,"y":214},  //控制点1
        {"x":-418,"y":42},   //控制点2
        {"x":-92,"y":42}     //终点
      ], 
      [  //曲线二
        {"x":-92,"y":42},
        {"x":-26,"y":235},
        {"x":90,"y":266},
        {"x":228,"y":134}
      ]
    ]
    

    将这个场景运行起来也可以修改编辑曲线,使用上面生成的参数可以预览到cc.bezierTo动作的效果:

    贝塞尔曲线.gif

    3

    下面简单介绍一下相关组件属性,先看一下图中的两个红色起点上的组件


    1. 不论是起点、终点、控制点,都有一个Dragable组件,负责实现节点的拖动
    2. 图中的两个红色节为起点,上面挂了一个BezierAction组件,Target属性它的是终点节点,Ctrl1、Ctrl2分别是它的控制点。

    再看一下DrawBezier绘图组件属性:

    image.png
    1. 在场景中添加一个节点,挂载一个cc.Graphics
    2. 挂载DrawBezier组件,BezierActions是一个BezierAction组件的数组,将上图中的两个红色节点拖动到此处即可
    3. ActionNode是用于执行cc.bezierTo的节点,前面图中的金币
    4. Duration是每条曲线的持续时间,(目前来看该属性放在BezierAction组件上更好)

    目前这个贝塞尔曲线编辑工具勉强可用,还有不少需要改进的地方,如果你对此感兴趣可以在公众号中回复“Bezier”“贝塞尔”可以获取该源码,感谢你的关注。


    相关文章

      网友评论

        本文标题:CreatorPrimer|贝塞尔曲线动作小工具

        本文链接:https://www.haomeiwen.com/subject/ftrzaqtx.html