[]分享贝塞尔曲线运动


Laya.timer.frameLoop(1, this, this.move, [0.0003])//主控制  0.0003自己调整

private testSp:Laya.Sprite;//移动物体
private counts=0;
//移动        自己做条件判断停止frameLoop
private move(arg) {
var t = arg * this.counts
var point = this.bezier(t, stX, stY, kzX, kxY, endX, endY);

this.testSp= point.x
this.testSp= point.y;
 this.counts +=10;
}
 
//t->(0,1)  stx:起始位置     kongzhiX:拉力点   endX :终点
private bezier(t: number, stx: number = 0, stY: number = 0, kongzhiX: number, kongzhiY: number, endX: number, endY: number): any {
var tem = 1 - t;
var tx = tem * tem * stx + 2 * t * tem * kongzhiX + t * t * endX
var ty = tem * tem * stY + 2 * t * tem * kongzhiY + t * t * endY
return { x: tx, y: ty };//返回坐标位置
}
已邀请:

cuixueying

赞同来自:

谢谢分享!

ddksoft

赞同来自:

谢谢分享!

smallsow

赞同来自:

获取的xy怎么是无限增长的啊。

张燕海

赞同来自:

稍微修改下就可以了,非常感谢。

要回复问题请先

商务合作
商务合作