Egret使用Tween动画实现二次贝塞尔运动/抛物线运动

阅读: 评论:0

Egret使用Tween动画实现二次贝塞尔运动/抛物线运动

Egret使用Tween动画实现二次贝塞尔运动/抛物线运动


//需求为实现对象沿line3轨迹运动
private addLine() {//为方便调试,先把三条线画出来let line1 = new egret.Shape()aphics.lineStyle(5,0x87CEFA);veTo(this.objectPoint.x, this.objectPoint.y - this.objectWH);	//起点aphics.lineTo(this.highX, this.highY);aphics.lineTo(this.highX*2 - this.objectPoint.x, this.stageH- this.objectWH);dFill();this.addChild(line1);let line2 = new egret.Shape()aphics.lineStyle(1,0x00868B);veTo(this.objectPoint.x, this.objectPoint.y - this.objectWH);	//起点aphics.curveTo(this.highX, this.highY, this.highX*2 - this.objectPoint.x, this.stageH- this.objectWH);	//控制点,终点dFill();this.addChild(line2);//line2为真实贝塞尔曲线轨迹,但是因为最高点过低而导致运动效果不太好,所以我们修改控制点的Y值,来打到较好的效果let line3 = new egret.Shape()aphics.lineStyle(1,0x4B0082);veTo(this.objectPoint.x, this.objectPoint.y - this.objectWH);	//起点aphics.curveTo(this.highX, this.highY-300, this.highX*2 - this.objectPoint.x, this.stageH- this.objectWH);	//控制点,终点dFill();this.addChild(line3);//在1秒内,this的factor属性将会缓慢趋近1这个值,这里的factor就是曲线中的t属性,它是从0到1的闭区间。(this).to({factor: 1}, 1000);
}//添加factor的set,get方法,注意用public
public get factor():number {return 0;
}//利用egret的缓动动画Tween来实现动画
//二次方贝塞尔公式 (1 - t)^2 P0 + 2 t (1 - t) P1 + t^2 P2
//起点P0  控制点P1  终点P2
public set factor(value:number) {this.mainObject.x = (1 - value) * (1 - value) * this.objectPoint.x + 2 * value * (1 - value) * this.highX + value * value * (this.highX*2 - this.objectPoint.x);this.mainObject.y = (1 - value) * (1 - value) * (this.objectPoint.y - this.objectWH) + 2 * value * (1 - value) * (this.highY-300) + value * value * (this.stageH- this.objectWH);
}




本文发布于:2024-01-31 01:49:42,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170663698524464.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:抛物线   塞尔   动画   Egret   Tween
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23