egret使用缓动Tween实现类似抛物线的效果

开发游戏免不了实现一些看起来吸引人的需求,所以最近就做了一个飙血的动画,刚开始使用的链式,但是太多,效果也不好

cocos有自己的动作方法,你也可以使用Tween,知道实现方法就好

TweenMax自带bezier,参数只要写路径数组就好了,这边不说


代码

//实现血量呈抛物线的tween
private doTween(){
	egret.Tween.get(this).to({ scaleX: 2.2, scaleY: 2.2, alpha: 1 }, 80)
		.to({ scaleX: 0.9, scaleY: 0.9, parabola: 1, alpha: 0.7 }, 650)
		.call(this.tweenComplete, this, []);
}	
		
public get parabola(): number {
	return 0;
}

//运动的是血量字体
//因为有一些暴击什么的图片,所以只缓动多少看你实际情况
public set parabola(num: number) {
	this.bitmapText.x = (1 - num) * (1 - num) * 3 + 2 * value * (1 - num) * 26 + num * num * 43;
	this.bitmapText.y = (1 - num) * (1 - num) * (-7) + 2 * value * (1 - num) * (-100) + num * num* 17;
}

稍微说一下

1、这个相对于中心点开始飙血,根据三个坐标行成一个运动的抛物线,看起来像往后抛东西
2、从最小值逐渐趋于传入的参数,是闭区间
3、如果你不用负号,上面的y坐标只要按相反的来赋值就好了,上面的坐标为(3,7),(26,100),(43,-17),因为y值是越向下越大,而坐标不一样
4、这是策划抄的别的游戏的表现让我实现的 (微笑)


维尼聚合工具


你可能感兴趣的:(Egret,TypeScript)