现在的需求是对图片的填充增加一个缓动的效果,就是填充的线快后慢,不知道怎么实现,求助!!!
creator编辑器的动画编辑功能就可以实现
如果要动态设置终点的进度的话,就只能自己写缓动了吧
每次都是缓动效果,动画编辑器实现不了
这个填充是类似于进度条那种吗?从0走到一个进度值,你可以自己设定这个进度值吗?
是的,填充简单,但是填充每一段都要有先快后慢的效果,不知道怎么实现
1赞
自己写个二次函数,想怎么动就怎么动
引擎有没有提供相应的action?, 就像-x版本的ProgressTimer
比如:
进度条分成X段,每段的最大长度为Y
写个schedule,每隔T执行一次,
每次执行的时候判断长度,
如果:当前长度 / 最大长度Y <= 75% ,那么,执行填充,速率 = n ;
如果:当前长度 / 最大长度Y 》75%,那么,执行填充,速率 = N
可行不?
好像只能手动实现这个动画
1赞
手动实现了个-x版本的ProgressTimer,需要的同学拿去。
progressTimer: function(time, from, to) {
let action = cc.delayTime(time);
action.update = function(progress){
let node = action.getTarget();
let pro = node.getComponent(cc.ProgressBar);
pro.progress = from+(to-from)*progress;
if(to>from && pro.progress>to)pro.progress = to;
if(to<from && pro.progress<to)pro.progress = to;
}
return action;
}
1赞
楼主找到好的办法了吗?同求,一样的问题
//这样的缓动填充行吗?
cc.Class({
extends: cc.Component,
properties: {
testNode: cc.Node,
},
onLoad() {
let test = this.testNode.getComponent(cc.Sprite);
cc.tween(test)
.to(1, { fillRange: 1 }, { easing: 'expoIn' })
.start()
},
});
1赞
如果是特定的填充
在updata里面每次对fillRange+= dt*自定义速度或者函数就好了
大佬牛逼,这个完美解决了问题