Day42 ( 游戏设计 ) 九宫挌拼图

九宫挌拼图

教学原文参考:九宫挌拼图

这篇文章会介绍,如何在 Scratch 3 里使用变数、清单、多个角色、重复、滑行、广播讯息和数学计算...等积木,实作一个九宫挌拼图的小游戏。

相关文章参考:变数清单重复广播讯息滑行数学计算

角色设定

在角色编辑区,删除猫咪角色,使用绘画,绘制新角色 ( 参考:造型与绘图 )。

Scratch 3 教学 - 九宫挌拼图

使用方形工具,画出一个正方形 ( 键盘 shift 键按着画,可以画出正方形 ),将角色命名为 move。

Scratch 3 教学 - 九宫挌拼图

复制 move 脚色,将名称改成 box1。

hScratch 3 教学 - 九宫挌拼图

将 box1 造型里的正方形,改成白底黑框的正方形,并用文字工具在中间输入数字 1。

Scratch 3 教学 - 九宫挌拼图

复制七次造型,分别将复制出的七个造型,改成 2~8 的数字。

Scratch 3 教学 - 九宫挌拼图

积木程序原理 ( move 角色 )

点击 move 角色,建立「方块、空格、ax、ay、n、ox、oy」七个变数以及「过关、检查、list」三个清单,个别说明如下图所示:

Scratch 3 教学 - 九宫挌拼图

设计点击绿旗的程序,一开始先让变数和清单都是初始状态:

  • 将 move 角色图层移到最下层
  • 变数 n 设为 1。
  • 变数方块设为 0。
  • 变数空格设为 9。
  • 将三个清单的内容都清空。

Scratch 3 教学 - 九宫挌拼图

接续上方的积木,将三个清单放入指定数值 ( 产生的清单内容如下图所示 ):

  • 使用「重复次数」积木,重复 8 次 ( 因为有八张数字卡牌 )。
  • 每次重复,将 n 加到「list」和「过关」
  • 每次重复,将 0 加到「检查」
  • 每次重复,将 n 的数值增加 1
  • 重复结束後,将 9 加到「过关」和「检查」

Scratch 3 教学 - 九宫挌拼图

接续上方积木,使用「重复 20 次」积木,每次重复将 list 的第一个项目,随机插入後方的位置,接着移除第一个项目,就能将 list 的内容打乱,打乱完成後,广播「ready」的讯息。

Scratch 3 教学 - 九宫挌拼图

因为所有角色都会收到广播的 ready 讯息,当收到 ready 讯息後,将 move 角色定位到九宫格的右下角,并将变数 ox 和 oy 设定为 move 角色的 x 座标与 y 座标

Scratch 3 教学 - 九宫挌拼图

接着设计收到讯息「move」的程序 ( 待会数字方块移动後,会发送 move 讯息 ):

  • 收到 move 讯息後,滑行到 ax 和 ay 的位置 ( ax 和 ay 会在点击数字方块时改变 )。
  • 滑行结束後,将 ox 和 oy 设定为新的座标。
  • 使用「清单替换」的积木,将「检查」清单里的空格和方块位置对调。
    • 将「空格」所在的位置设为 0
    • 将「方块」的所在位置设为「空格」
    • 将 0 的所在位置设为「方块」
  • 最後判断如果「检查」等於「过关」,就说出「完成」。

Scratch 3 教学 - 九宫挌拼图

积木程序原理 ( 数字方块角色 )

点击角色 box1,编辑「数字方块」角色的程序:

  • 当收到 ready 讯息时。
  • 将造型换成 list 清单的第一个项目
  • 变更造型後,移除 list 清单的第一个项目 ( 确保和其他方块不会重复 )。
  • 将第一个方块定位到九宫格的左上角。
  • 将「检查」清单的第一个项目设定为造型编号

Scratch 3 教学 - 九宫挌拼图

设计当方块角色被点击的程序:

  • 将 ax 和 ay 设定为点击角色的 x、y 座标。
  • 使用逻辑判断,判断方块和空格是否相邻
    • 如果相邻,则水平 ( ax - ox 的绝对值 ) 和垂直 ( ay - oy 的绝对值 ) 数值加总,会小於某个数值 ( 范例为 110 )
    • 如果相邻,让变数「方块」等於造型编号。
    • 广播 move 讯息,表示这个方块准备移动。
    • 将方块滑行到 ox、oy 的位置 ( 空格处 )

Scratch 3 教学 - 九宫挌拼图

复制七个 box1 角色,名称分别是 box2~box8。

Scratch 3 教学 - 九宫挌拼图

将复制的角色,参照下图修改积木对应的数值。

Scratch 3 教学 - 九宫挌拼图

最後,将空格的颜色改成全白。

Scratch 3 教学 - 九宫挌拼图

完成效果

完成後,点击绿旗,就可以开始进行九宫格拼图的游戏。

Scratch 3 教学 - 九宫挌拼图

范例解答

范例解答:九宫挌拼图

延伸练习

如果已经熟悉了九宫挌拼图的原理,还可以尝试更多好玩的作法:

  • 沿用范例程序,增加「云端变数」,纪录最快过关的步数。( 解答 )

关於我

大家好,我是 OXXO,是个即将迈入中年的斜杠青年,如果对我有点兴趣(笑,可以与我联系,一起来做点有玩又有创意的东西吧!


<<:  Day24 URLSession 04 - DELETE

>>:  Day28-介绍 Redux DevTools

LHS RHS

RHS 字面上来说RightHand Side,不是真的右手的意思...简单来说当作get of v...

WEB API

DOM Document Object Model 文档物件模型 DOM的简历 职业类别:接口 职称...

[Day27] 测试场景与角色

今天意外顺利,把预设要做的东西都有做出来 ^_^ 今日目标 搭建测试场景 建立角色在场景上 搭建场景...

[火锅吃到饱-9] 自由小火锅

特别想吃猪脚时,我会来这里解馋。(今天选麻辣锅底) 时间又来到下午的4点,今天不用赶4点30分,因为...

[Python]Login, Search, Download

https://github.com/KaliChen/SearchAndDownload Inst...