有关于Tween修改任意对象属性

这个是在自己平时用的时候发现的一个问题。

自己用get set声明了一个属性hp。想要通过tween去实现一个缓慢减少的效果。结果这边报错了

而且泛型这里显示的也不是类,而是this。
image

有大佬,前辈处理过这个问题吗?感谢感谢。

可以这样写

let obj = {n: 0};
obj.n = this.hp;
cc.tween(obj).to(time,{n: 100}, {progress:(c,s,e,t)=>{
c = s + (s-e)*t;
this.hp = c;
return c;
}})
// 后面progress的具体函数我记不清了,可能有问题,可以自己去翻一下tween的引擎源码看一下

this as 当前脚本名或者let self:当前脚本名=this 就行了 ,必须指定一个类型,不然无法识别this得指向

学习了 :joy:
我就说平常我这么干非得再造个对象,看起来很难受

O%Q3_PU6_XVE{BH9K35PV
谢谢各位的回答,这里我通过new一个泛型为此类的tween对象解决了。

好的,这个解决方式挺好的。

太强了吧,大佬

cc.tween<GameEnity>(this).to(1, { hp: 123 }).start()
2赞

该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。