前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >贝塞尔曲线动作小工具

贝塞尔曲线动作小工具

作者头像
张晓衡
发布2019-09-11 18:00:57
1.9K0
发布2019-09-11 18:00:57
举报

开始之前给看下效果:


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

虽然上面的方法也能解决一些问题,但总是舍近求远,为什么有简单的方法不用,原因是cc.bezierTo的控制参数自己也没搞明白。

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

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

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

代码语言:javascript
复制
[
  [  //曲线一
    {"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动作的效果:

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

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

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

  1. 在场景中添加一个节点,挂载一个cc.Graphics
  2. 挂载DrawBezier组件,BezierActions是一个BezierAction组件的数组,将上图中的两个红色节点拖动到此处即可
  3. ActionNode是用于执行cc.bezierTo的节点,前面图中的金币
  4. Duration是每条曲线的持续时间,(目前来看该属性放在BezierAction组件上更好)
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-05-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Creator星球游戏开发社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档