/**
* 贝塞尔曲线加旋转角度
* playTime 时间
* startPos 开始点
* midPos 中间点
* endPos 结束点
* easing 缓动行数
* */
playfruitsTween(playTime,startPos,midPos,endPos,easing) {
var fruit = this.node;
var fruitTween = tween(startPos);
const mixY = midPos.y;
const maxY = endPos.y;
const mixX = midPos.x;
const maxX = endPos.x;
var progressX = function (start, end, current, t) {
current = bezier(start, mixX, maxX, end, t);
return current;
};
var progressY = function (start, end, current, t) {
current = bezier(start, mixY, maxY, end, t);
return current;
};
const tempVec3 = v3();
fruitTween.parallel(
tween().to( playTime, {x: endPos.x}, {progress: progressX, easing: easing, onUpdate: (target, ratio)=>{
fruit.setPosition(startPos);
//计算出朝向
let angle = Vec3Util.getAngle(tempVec3,startPos);
tempVec3.x = startPos.x;
tempVec3.y = startPos.y;
tempVec3.z = startPos.z;
var degree = angle / Math.PI * 180;
this.node.angle = degree;
}}),
tween().to( playTime, {y: endPos.y}, { progress: progressY, easing: easing, onUpdate: (target, ratio)=>{
fruit.setPosition(startPos);
}}),
)
.start();
}