在Scratch中可以利用两张设置更多的图片来循环播放,形成一个移动的背景,某天突然想到,如果用克隆体像铺砖块一样实现一个背景,又该如何组织呢,于是就动手尝试了一下。发现在生成克隆体的时候可以给克隆体一个私有变量以确定克隆体的x坐标,x坐标依次递增,比如有100块克隆体,x自增为50,那么最后一块克隆体的坐标就增加到了5000,这个数据当然是无法显示在屏幕上的,因为Scratch的屏显面积有限,最多只能显示480*360像素。
所以为克隆体们定了一个标准,当前私有x坐标变量在屏幕内时,则移到这个私有变量的位置进行显示,其余情况下隐藏。这样坐标靠前的克隆体就被显示了出来,如何让后面的克隆体逐渐显露呢,我们可以通过按键事件来统一修改这一整批克隆体的私有x坐标。
比如按下向前键的时候,让私有变量不断减少,这样原来私有变量为300,隐藏在屏幕外的克隆体,因为私有x坐标变量的递减,会逐渐靠近屏幕,得到显现。而原来就靠近屏幕左侧边缘的克隆体,因为私有变量的增加,最终因不满足显示条件,而被隐藏起来。
通过对私有x坐标变量的增减操作,我们可以构建出一个较长的背景,因为这堆克隆体的私有x坐标变量同加同减,所以他们的相对位置也能够保持不变。这样就实现了一个可以前后任意移动的可回溯的地图背景。
实际测试中发现,如果将屏幕的范围适当放大到超出容许尺寸,会导致新出现的克隆体超限被挤回屏幕内,但后续的位置并不受影响,因为挤回屏幕的操作并不会变更克隆体的私有变量的值,所以在后续的移动过程中,坐标始终是正确的。