游戏中怎么实现滚动数字?Cocos Creator 实现!

效果预览数组

▌滚动数字的效果预览,位数设置:10,初始值:0,测试时,把显示数字手动修改成 1234567890  的效果,#免费提供代码#,具体获取方法,参考文章结尾部分。微信



使用说明测试

▌建立一个空节点,给空节点添加本实例中的脚本 RollNumber 组件,还须要额外添加两个组件 Mask 组件和 Layout 组件,添加完效果,大体以下图所示,文字居中显示,节点当作正常节点进行使用便可。字体



▌Mask 组件主要用来控制数字的显示,Layout 用来控制多位数字的显示,Layout 须要设置成水平方向,Mode 须要设置成 Container 方式,设置以下图。flex



▌RollNumber 组件支持显示位数、运动速率的设置,使用时,须要设置每一位数字的显示宽度 width(注意不是全部位数的宽度),还须要设置 0-9 每一个数字的纹理图片,并对应上数组下标,以下图所示。
url



实现原理spa

▌具体的原理是,每一位一开始把 0-9-0 数字竖直方向拼接,都置于 Layout 组件内,从上到下排列,须要显示的区域经过遮罩显示,其余不须要显示部位就不会显示出来,当须要显示指定数字时,改变父节点的纵轴坐标实现须要的数字显示。
.net



▌上图就是去掉遮罩组件的显示效果,这样看更方便理解,其中绿色区域是显示区域,遮罩打开之后,玩家只会看到绿色区域范围。3d

▌运动分为两种:一种是数字从小到大,另一种是从大到小。
orm

数字从小到大,只须要获取到要运动到的位置,直接节点作 MoveTo 动做,让节点运动到指定数字便可。



▌数字从大到小,由于运动方向只有往上的,须要分三步:

1. 运动到最低端的 0 位置;

2. 总体下移,显示 0 ,这也是方便过渡,肉眼看不出变化效果;

3.  再 MoveTo 到指定的数字位置。



▌考虑到数字的长度可能会发生变化,使用节点池能够提高效率,须要的时候,从节点池获取,若是节点池是空的,从新生成。

▌数字运动的距离有长有短,计算运动时间时,须要根据偏移量计算运动时间,以达到每一位在相同时间内完成数字的变化。


获取代码

▌关注公众号,发送【滚动数字】获取代码,能够微信扫描下面二维码,关注本公众号,也能够点击开头处的蓝色字体进行关注。



往期精选

精品游戏大炮英雄附带代码!

精品动物同化附代码!

完整代码左右跳!

陀螺仪重力球代码奉上!

100关推箱子代码免费获取!

拼手速的游戏代码!

打地鼠有代码!

3D篮球投篮附代码!

3D足球射门附代码!

如何使用3D素材试玩3D!


扫描二维码

获取更多精彩

一枚小工


让我知道你在看

本文分享自微信公众号 - 一枚小工(caizj_cn)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索