在拼图游戏中,我们实现了一个九宫格的实例,有的时候我们需要的格子往往并不止九个,比如在棋局开始前画一副棋盘。比如在扫雷游戏开始前画出背景上的网格。实现网格的方法有很多种,可以是一张静态的背景图,可以是多个排列整齐的克隆体,也可以是画笔工具在程序运行过程中实时绘制的线条。
比如现在有一个方格对象,博主想利用循环嵌套的方式来一边移动主体对象,一边生成克隆体,以呈现上述图片的效果。编辑程序如下:
点击运行后,对象在屏幕上飞速移动,转眼之间,一个7×7的阵列图形就创建完毕了。7×7的方格没有花我们多长的时间,接下来我们直接把两层嵌套的循环次数修改为20,这次似乎就没有这么快了,毕竟需要画400个格子呢。假如这是一个游戏的预备动作,还没等背景绘制完成,心急的玩家估计就要去右上角关闭窗口了。
这套课程开始之初,我们介绍菜单栏的时候曾经介绍过加速模式,切换到加速模式后,对象飞速移动的动画效果被取消了,400个格子眨眼就完成了。但是加速模式有一个弊端,一旦开启后,它会加速所有的进程,这也就意味着,正常游戏的动画效果也被加速了。总不能在游戏正常开始后,让用户手动去把加速模式给关上吧。
如何仅在需要加速的地方,比如程序的初始化以及预备阶段,仅加速一下背景以及装饰元素的绘制过程,而不影响程序其他正常的流程呢?我们可以将需要加速的过程用自定义积木包裹起来,如果自定义的这段程序需要被加速,我们需要在制作积木窗口中,勾选左下角的运行时不刷新屏幕。
在这里博主定义了一个绘制背景的自定义积木,然后用它连接了之前的绘制方格的积木,同样是绘制400个方块,来试试效果吧。自定义积木中的禁用屏幕刷新,可以很灵活的针对某几段程序进行加速,可以加快图形的绘制,以及数据的获取,在不要展示过程,而只想得到一个结果的场景中,是一个高效且方便的工具。