翻卡记忆游戏 ( 改良版 )
这篇文章会介绍,如何在 Scratch 里使用区域变数、全域变数、分身和广播消息...等积木,实作一个翻翻卡的卡牌记忆小游戏 ( 此篇文章修改原本“翻翻卡、卡牌记忆”范例,使用分身取代多个角色,让程序更清楚好懂 )。
快速导览:
绘制角色
使用绘画的方式建立角色“card”,使用方形工具绘制第一组造型,造型名称为 cover,表示卡牌的封面。
复制卡牌封面造型,在方形里绘制不同的图案,如法炮制产生六组不同图案的造型,可自订造型名称。
程序原理
建立“卡牌清单”函数,勾选“执行完毕再更新画面”。
“卡牌清单”函数执行后,会先清空 list 清单内容,接着重复 12 次,每一次重复会切换造型并略过封面 cover 造型,接着将目前的造型写入清单的随机位置,由于清单长度从 0 开始,因此在计算随机位置时要使用“清单长度 + 1”。
建立“产生分身”函数,勾选“执行完毕再更新画面”。
建立“产生分身”函数执行后,会在舞台上建立 4x3 共 12 个卡牌分身,建立分身之前,会设定变数 n 为 0,该变数会在分身建立时,赋予不同分身不同的数值。
新增变数“name_local”,勾选“仅适用当前角色”将变数设定为“区域变数”。
当分身产生时显示分身,并将分身造型设定为 cover,透过增加 n 和 name_local 搭配,就能赋予不同分身有不同的 name_local 数值,接着使用重复循环实作点击分身的程序逻辑,当分身点击时根据 name_local 切换分身造型,并将造型名称写入 check 清单中,如果 check 里两个项目相等,表示翻到同样的卡牌,翻到同样卡牌时广播 1,翻到不同卡牌时广播 2。
使用“广播并等待”的意义,在于接收广播之后,会有等待一秒的效果,必须等待这一秒完成后再继续进行后续动作。
收到广播 1 时表示卡牌花色相同,将舞台中造型不是 cover 的卡牌进行闪烁,闪烁结束后删除分身,如果收到广播 2 表示卡牌不同,等待一秒后将造型恢复 cover。
效果展示
完成后点击绿旗,就可以开始进行翻翻卡的卡牌记忆游戏。
微信扫码关注
抖音扫码关注