怎么实现文字跳动效果?

有没有最偷懒的方法?

文字分为两部分,跳动的部分直接用action或tween实现不就可以吗?

那个数字是一直变的

如果是2512变成2712会是什么过程?
是只有5跳起来还是512都跳起来?

来个狠人方法 一个数字 用一个label

还不是实现不出来想当伸手党

一个数一个label 用tween上移(用mask罩住) 改变数值 再下移不就完事了

可能有 n 位数,然后多个位整体跳动

我也想到这种方法,但这也太蠢了吧,一个数字一个label

蠢吗?一点都不蠢。其实每个字符都是Sprite

label左对齐 后面几个数要动的时候 再划分成两个label 那个label去动就行了
也就是只要一个label 动的时候才两个

连这种小功能都要问 你先随便实现一个出来就不错了 还怪蠢

一个数字一个label确实是最简单实现的一个方法 :joy:我要有这个需求我也这样搞

用这个吧,配合layout,动完移除

跳动的位数应该和总位数是一个固定关系,比如是总位数-1或者-2,那么你只需要吧一串数字判断位数后,划分成两个label,不会跳的一个会跳的一个,对后者做动画,就行了。

我刚问的就是想确定他这种需求。如果他需求不是这样,而是:
2512->2715
然后跳起5和2换成7和5,这样的话你这种做法感觉就不合适了
可能还真得一个数字一个精灵图片的方便

没错,按照你的举例,1不跳的话,那只能每个数字一个label了,
不过根据常见的游戏效果推理,我偏向于增加或减少的数字是几位,就跳几位。
比如2512+100,那么就跳后三位,如果2512+10就跳后2位,这种跳法感官上更合理。

变化的数字跳动

嗯,我以前做过你这种需求,就是你这种做法,按位跳的,不是按字跳的

要不就按那些大佬说的用图片按字跳动算了? :joy:
或者我还有种稍微麻烦的方案:个人感觉这种需求一般都是做在奖池一类的地方,所以用一个bmfont文本,有修改的时候直接改文本,然后需要跳动的数字用单块背景遮挡跳动数字,在原位创建单个数字做动画,落下后去掉跳动数字和遮挡(这俩可以做成一个预制体加脚本拿个节点池管理)

2种办法:
1.一个数字一个label做动作
2.在 CCSGLabelCanvasRenderCmd.js 中 覆写 _updateLabelDimensions,实时计算labelContext渲染信息