地图 ( 清单转换 )
这篇文章会介绍,如何在 Scratch 里使用函数、变数、清单、盖章、文字转清单...等积木和技巧,实作将清单 ( 一维数组 ) 内容转换成舞台中的图形。
角色设定
在角色编辑区,删除猫咪角色,使用“绘画”功能绘制一个正方形的角色 ( 参考:造型与绘图 ),角色里包含橘黄色和蓝色两个大小相同、颜色不同的造型,使用选取工具,将正方形的大小改变成 24x24,并对齐画布中心点。
积木程序原理 ( 导入函数 )
参考“文字转清单 ( 指定符号拆字 )”文章,打开范例后,将“拆字”的函数放入背包 ( 让新专案也可以使用这个函数 )。
在新的专案 ( 有正方形角色的 ) 里打开背包,将“拆字”函数拖拉到程序编辑区,此时会自动产生 item、n 两个变数,以及 list 清单。
新增一个 source 变数,将变数内容设定为 20 个 1、0、逗号组成的文字,接着执行拆字函数,将 source 的文字内转换成 list 清单,点击绿旗后,就会看见 source 的文字已经转换成 list 的清单内容。
为什么要 20 个呢?因为舞台宽度为 480,正方形角色的宽度为 24,需要 20 个正方形才能将舞台填满。
为什么要 0、1 和逗号呢?因为标准数字数组格式为“数字和逗号”组成,先使用 0 和 1 可以让程序较为单纯,比较好处理后续的部分。
积木程序原理 ( 清单转换 )
新增一个名为“显示”的函数,勾选“执行完毕再更新画面”,这个函数负责将清单的内容,转换成舞台显示的图案。
编辑函数内容:
- 加入“扩充功能”的画笔,使用清除笔迹和停笔,避免舞台上出现不必要的笔迹。
- 显示角色。
- 将角色定位到舞台左侧 ( -228,100 ),高度可先自定,因为正方形的宽度为 24,定位时以中心点定位,为了避免超出范围,所以使用 -240+12=-228 的位置。
- 新增一个变数 i,设定变数 i 为 1,从清单的第一个项目开始。
- 使用重复 20 次积木 ( 因为舞台宽度 480/24=20 ),每次重复执行:
- 判断如果取得的清单项目等于 1,设定角色造型为 a ( 黄色正方形 )。
- 判断如果取得的清单项目等于 0,设定角色造型为 b ( 蓝色正方形 )。
- 以目前的造型在舞台上盖章。
- 将变数 i 增加 1。
- 将位置往右移动 24 点。
- 重复结束后,将角色在舞台中隐藏。
在原本点击绿旗的下方,执行“显示函数”,点击绿旗后,舞台上就会出现对应的图形。
放入设定“按下键盘向右与向左键”的动作:
- 当“向右”键被案下:
- 将 list 清单的最后一个项目,移动到第一项 ( 插入最后一项到第一项,然后删除最后一项 )
- 执行“显示”函数。
- 当“向左”键被案下:
- 将 list 清单的第一个项目,移动到最后一项 ( 插入第一项到“最后一项 + 1”,然后删除第一项 )
- 执行“显示”函数。
完成效果
完成后,点击绿旗,舞台上会出现清单的图案,按下键盘的左右键,就能移动图形。
如果清单长度超过 20,会显示前 20 个项目。
范例解答
范例解答:绘制地图 ( 清单转换 )
继续阅读
如果已经熟悉了绘制地图 ( 清单转换 ),就可以继续阅读“绘制地图 ( 二维数组 )”的文章。
文章链接:绘制地图 ( 二维数组 )
微信扫码关注
抖音扫码关注