用户:
SKQA查看:0 回复:3 评论:0 创建时间:2020-05-07T14:16:13
好久没写教程帖了~
这次我们来一个案例:数字特效。
一、看看效果
你们有没有觉得纯内容变量有点单调、难看?这次的数字特效,就是把数字变得色彩缤纷!
二、角色
因为数字特效应该很多数字角色,但是又会有很多位数字,一定需要用克隆。我们只需要一个有0到9造型的数字角色就可以了!可以去素材商城里去找,这里用的是素材商城中的“青字黑框数字”~
三、程序
开始我们的程序吧!
任务1 保存数据
首先我们需要有一个变量,保存这个数字。
调成纯内容更好看!
任务2 确定大小and位置
开始建造数字!
首先,我们一定要确定数字的大小,因为数字角色是一个数字一个数字的,所以角色的大小取决于数字的位数。
那么如何确定角色的大小?那就一定需要一个标准大小,做参照物。
这里我们就用100个坐标单位。打开kitten中的坐标,发现如果数是一位数,那么角色大小大约是175
确定好了一位数的大小是175,就可以得出如果它是几位数,大小大约就是175除以几。
那怎么确定位置呢?显然,这位置在最中间,肯定是X坐标是正多少和相对应的负多少。
经计算发现,
如果是两位数,则X坐标为-50、50
如果是三位数,则X坐标为-50、0、50
不需要想的很复杂,这些数字还是有规律的!
参照数值是200坐标,那么参照的位置就是-100~100嘛~
那么就只需要把两边的-100~0、0~100这两个位置分成多少半不就得了嘛!
两位数就把-100~0分一半变-50,0到100分一半变50,两个坐标就出来咯!
三位数的话,第二位肯定是占0的,后面就把这两个位置分半就得了!
如果是四位数呢?那就是把两边的-100~0分两半成-67、-33(四舍五入),0~100分两半成33、67就把四个坐标全求出了!
显然,我们要做的就是首先移到第一个坐标,然后依次往右移动多少,每次同时克隆一次,如此循环直到到达最后一个位置。
如果数位是奇数,并且不是一位数,第一个坐标的Y肯定是0,第一个坐标的X就是:
问我这代码哪来的 的人全部给我关到小黑屋里去!之前讲过了!
![]()
如果数位是偶数,那么第一个坐标的X就是:
那如果是一位数,那么……就是0咯!
任务3 摆放数字
上面说过,我们要做的就是移到第一个坐标,然后依次向右移动多少,接着克隆。
上面全说过,所以这里直接给积木:
如何克隆?
数位是1,一位数,一个数字不需要克隆。
我就猜有的人,就在下面继续写:如果数位不是1,那么就克隆……
这样的人,说明没看懂“检查”章“程序的正确性”节中的内容……
在这节中,我说过代码审查,检查点包括命名规范、程序架构、代码重复、程序可读性、程序扩展性等。
而这些人没有做到,代码长的话,可读性、扩展性都会减少!
接下来给大家带来一个绝妙的方法:
刚才判断过了是否位数为1,那何必再判断一次呢?这里的“如果……否则如果……否则”就不太管用了。
因为这里的“否则如果”无法继续写积木,所以我们选择用两个“如果……否则”。
代码就是酱:
这里的克隆需要用重复直到,检测是否达到那个地步。
那个地步就是:
(代码超长,请将网页大小放大至200%或右键选择“在新标签页打开图片”)
这个东西自己理解……为了保险,我这里没用=,我用了≥
如何检测每个克隆体中间的间隔?
之前说过……交给你吧……
接下来就是重复克隆
同时X坐标增加间隔
还有就是造型切换
也没什么难度
但是要注意数据类型转换问题
这个教程我写了几个小时
来之不易
我知道这么长的代码一定有更简洁的办法
所以请dalao指出~