197 字
1 分钟
cocos creator贝塞尔曲线运动
import { randomInt } from "../Utils/util";
const { ccclass, property } = cc._decorator;
@ccclass
export class BezierMovement extends cc.Component {
start() {}
runBezierAction() {
const time = 0.1;
// 贝塞尔曲线的控制点
const num = randomInt(-30, 30);
const controlPoints = [
cc.v2(0, 0), // 起点
cc.v2(num, randomInt(100, 200)), // 控制点1
cc.v2(num * 2, randomInt(-20, 20)), // 终点
];
// 创建一个贝塞尔曲线动作
const bezierTo = cc.bezierTo(time, controlPoints);
// 创建一个缩放动作
const scaleTo = cc.scaleTo(time, 0.3, 0.3);
// 创建一个透明度动作
const fadeTo = cc.fadeTo(time / 2, 255);
// 创建一个序列动作
const sequence = cc.sequence(
cc.spawn(bezierTo, scaleTo, fadeTo),
cc.callFunc(this.onBezierActionEnd, this)
);
// 创建一个Tween对象并设置目标节点
const tween = cc.tween(this.node);
// 设置初始属性
tween.set({ scale: 0.2, opacity: 100 });
// 添加序列动作到Tween中
tween.then(sequence);
// 启动Tween
tween.start();
}
onBezierActionEnd() {
// console.log("贝塞尔曲线运动结束");
}
}