1 回答

TA貢獻1840條經驗 獲得超5個贊
好吧,這不是對所提問題的直接回答,但它是問題的解決方案,所以在這里。
我沒有找到一種方法在動畫處理補間的屬性時對其進行修改,但我發現我可以對點進行分組,然后相對于該組進行動畫處理,并且我必須在派生的x,y上繪制組,這很容易。
let bloodDot = (size: number) => {
let dot = new Konva.Circle({
x: 0,
y: 0,
radius: size,
fill: 'red',
});
let dir = Math.random() * Math.PI * 2;
let dis = Math.random() * size * 5;
g.add(dot);
dot.to({
x: Math.cos(dir) * dis,
y: Math.sin(dir) * dis,
duration: Math.random() * 3,
easing: Konva.Easings.StrongEaseOut,
onFinish: () => dot.destroy()
});
}
let g = new Konva.Group({
x: this.dx(entity.x),
y: this.dy(entity.y)
});
this.layer.add(g);
for (let lg = 0; lg < 5; lg++) {
for (let sm = 0; sm < 3; sm++) {
bloodDot(entity.size / 6);
}
bloodDot(entity.size / 3);
}
setTimeout(() => g.destroy(), 3000);
添加回答
舉報