在Scratch基础教程这个系列中提到过Excel这个软件,这其实是一个伪装成电子表格的万能工具,我们可以用它来处理数据,也可以用它来转换html格式的表格以便把表格内容发布到网站。当然也有用Excel来画像素图,甚至制作游戏的,对于这类疯狂炫技的用户,博主能做的,也就默默点三十二个赞了。
Scratch与Excel交换数据
在Excel中绘制了一幅推箱子游戏的地图,图片里博主设置了背景色,实际应用中我们需要的仅仅只是表格中的数据,1代表游戏的围墙,2代表普通的地板,3代表箱子的目标位置,4代表箱子,5代表玩家所控制的游戏人物。(最终设计的表格是10行,12列)
框选所有的表格后复制,将这些数据粘贴到一个文本文件中,会表现为这样的形式,列与列之间以一个“tab缩进”分隔,而行与行之件以回车符号分隔。
如果框选表格后复制的复制直接粘贴到Scratch会是什么样呢?“tab缩进”会展现为一个长度较长的分隔,而回车键会被替换为一个正常的“空格”,在文本文件中行列井然的数据,在Scratch会被变成单行数据。
但无论是较长的间隔,还是正常的“空格”,在Scratch中,都只占用一个字符的长度,所以当我们利用类似上面的程序,利用一个每次增加“2”的变量来提取刚才存的单行数据,就可以完美跳过厄余数据,准确提取到数据内容。
从关卡数据的第一项中每次自增“2”来提取数据并存入一个“关卡缓存”表,利用缓存表来生成游戏地图,如同前文所描述的一样,成功实现了一个方形的推箱子游戏地图。
在翻滚长方体这个游戏中,我们为每一关都设置了一张表格,但Scratch中暂时并不支持通过一个变量组装列表名来顺序读取内容不同但有序命名的列表,所以推进关卡的时候博主用了很多个判断语句来依次跳关。
既然无法通过变量来动态读取不同的列表,那就换一个方式,我们固定读取一个名为“关卡缓存”的列表,每过一关,就清除掉“关卡缓存”原来的数据,继续利用“关卡数据”列表中下一项来重新填充“关卡缓存”列表。
如果想对“关卡数据”的地图进行修改,如何重新将数据还原到Excel呢,因为“换行符”被替换成了空格,所以无法直接粘贴回去,数据量不多的情况,可以在文本文件中将空格手动替换回换行符,如果数据量较大的情况,就需要使用具备批量“查找替换”的文本处理工具了。将空格重新替换为“换行符”之后,就可以全选数据,粘贴回Excel软件进行可视化修改了。