九宫格拼图 ( 改良版 )
这篇文章会介绍,如何在 Scratch 里使用变数、分身、清单、多个角色、重复、滑行、广播消息和数学计算...等积木,实作一个九宫挌拼图的小游戏 ( 此篇文章修改原本“九宫格拼图”无法过关的问题,并改用分身的做法,让程序更清楚好懂 )。
快速导览:
绘制角色
使用绘画的方式新增角色“box”,负责画面上作为题目 1~8 的数字方块,使用方形工具绘制 98x98 的白底黑边正方形,将其对齐画布中心。
在正方形里加上数字,接着复制成为八组造型,内容是 1~8 的数字,造型名称也必须对应内容数字,使用 1~8 作为名称。
文字的“行高”会让尺寸产生变化,但只要文字不要超过正方形,基本尺寸就仍然是 98x98。
使用绘画的方式新增角色“move”,负责画面上作为缺口的空白方块,使用方形工具绘制 98x98 的白底正方形,将其对齐画布中心。
加入一个角色“cat”,负责提示现在走了几步,或者提示现在是否过关。
程序原理 ( box 数字方块 )
编辑 box 数字方块角色的程序,新增“方块位置清单”函数,勾选“执行完毕再更新画面”。
“方块位置清单”函数内容放入 pos_x 和 pos_y 两个清单,清单内容分别纪录九宫格的座标,座标的数值如下图所示。
新增“造型清单”函数,勾选“执行完毕再更新画面”。
“造型清单”函数内容先用一个 list 清单搭配重复循环依序纪录每个造型名称 1~8,纪录完成后,重复“偶数次”,每次重复将最后一项移动到“随机的奇数项”,这种互换的方式可以确保都是“偶数替换”,避免无法过关的状况发生,互换完成后,list 的内容会变成随机数,在最后添加 9 作为空白方块使用。
新增“建立分身”函数,勾选“执行完毕再更新画面”。
“建立分身”函数内容先隐藏本尊,新增变数 n 纪录第几个项目,并使用重复八次的循环产生八个分身。
编辑点击绿旗时,依序执行函数,并在分身产生时,根据位置清单和造型清单,将分身摆放到指定的位置并切换成对应的造型。
新增“移动”函数,不用勾选“执行完毕再更新画面”。
“移动”函数内容使用 x 和 y 变数纪录“被点击的”数字方块座标,接着判断如果“数字方块和空白方块的 x y 座标距离总和小于 110”,表示这个数字方块会移动,移动时使用变数 a 纪录数字方块在清单 list 里的项目位置,使用变数 o 纪录空白方块在清单 list 里的项目位置,再透过“替换”积木将两者互换,互换后发送 move 广播信号并滑行到空白方块的位置。
回到建立分身的积木里,使用重复循环搭配逻辑,实作点击分身的程序,当分身被点击时,执行“移动”函数,同时判断 ok 变数是否等于 list 清单,如果不相等表示还没过关,可以继续移动。
ok 变数内容会在另外的角色设定,判断相等的作法参考“判断两个清单是否相同”。
程序原理 ( move 空白方块 )
编辑 move 空白方块角色的程序,点击绿旗时将空白方块定位在九宫格的右下角,设定 ox 和 oy 变数为当前的座标,当收到 move 广播信号时,将位置设定到数字方块的位置,并更新 ox 和 oy 的内容。
程序原理 ( cat 提示角色 )
编辑 cat 提示角色的程序,点击绿旗时将角色定位在舞台右下角,使用 step 变数纪录步数,使用 ok 变数存放过关的数字排列,收到 move 广播信号时,除了更改 step 步数,同时也会判断 list 清单内容是否等于 ok 变数的值,如果相等就呈现过关消息。
完成效果
完成后,点击绿旗,就可以开始进行九宫格拼图的游戏。
范例解答
范例解答:九宫挌拼图 ( 2024 改良版 )
微信扫码关注
抖音扫码关注