github:https://github.com/hubluesky/XTween
cocos自带tween的几个问题。
1、一个tween只能有一个target,无法拼其它target
2、by动画有问题,比喻我有点个按钮做个0.1的by缩放,然后横屏的时候,修改缩放为0.5,竖屏的时候修改缩放为1.0,这个时候by动画就错了,不是我期望的0.1缩放。
我还写了一个 CocosXTween.ts封装了很多tween时要使用的变量,比喻:
interface Renderable2D {
colorR: number;
colorG: number;
colorB: number;
colorA: number;
}
interface Node {
positionX: number;
positionY: number;
positionZ: number;
worldPositionX: number;
worldPositionY: number;
worldPositionZ: number;
eulerAngleX: number;
eulerAngleY: number;
eulerAngleZ: number;
scaleX: number;
scaleY: number;
scaleZ: number;
scaleXYZ: number;
}
class Target {
visable: boolean = false;
position = { x: 0, y: 0, z: 0 };
rotation: number = 0;
alpha: number = 0;
width: number = 100;
height: number = 200;
}
let target = new Target();
let target2 = new Target();
xtween(target)
.to(1000, { width: 500, rotation: 360 }, { easing: XTween.Easing.Back.Out })
.to(1500, { height: 600 }, {
onComplete: (target) => {
console.log("onComplete 1", target);
}
})
.delay(1000)
.repeat(4, true, xtween(target).to(300, { alpha: 1 }).to(300, { alpha: 0 }))
.sequence(xtween(target).to(1000, { rotation: 100 }), xtween(target2).to(1000, { rotation: 100 }))
.call(() => {
console.log("Call 1", target, target2);
})
.to(1500, { position: { x: 10, y: 20, z: 30 } }, {
onStart: (target) => {
console.log("onStart ", target);
}
})
.set({ visable: false })
.call(() => {
console.log("Call 2", target, target2);
})
.start();
