搜索

Scratch 教程

基本介绍

使用 Scratch 3 注册与登录 操作界面 我的东西

图形与声音

绘制造型&背景 编辑音效

程序积木

积木种类 动作 外观 音效 事件 控制 侦测 运算 变数 清单 函数积木

扩充功能

音乐 画笔 视频侦测 文字转语音 翻译

技巧&观念

全域变数、区域变数 深入理解区域变数 控制指定分身 控制所有分身的方法 云端变数 云端变数记录文字 变数串接文字 判断英文字母大小写 中断与停止程序 广播消息并等待 键盘与鼠标 鼠标点击与长按 侦测所有键盘按键 点击隐藏的角色 突破角色尺寸限制 角色与舞台边界 重复积木的等待时间 音乐暂停与继续播放 使用造型名称建立清单 使用造型代替变数 文字转清单 清单合并为文字 判断两个清单是否相同 复制清单、反转清单 清单数字排序 清单最大值最小值

入门范例

键盘控制猫咪 指向中间的箭头 水果音乐钢琴 猫咪的影分身之术 猫咪的细胞分裂 螃蟹跑来跑去 吃水果 摸蝴蝶 小狗追棒球 鱼儿水中游 小鸟往前飞 舞棍阿伯 小时钟 摇骰子 转动的眼球 抽奖轮盘 大乐透电脑选号 卡牌抽签 ( 20 中 1 ) 移动到边缘切换场景 人物依序跳舞 ( 广播 ) 按钮控制猫咪 ( 广播 )

进阶范例

猫咪跑步 ( 连续背景 ) 猫咪跑步 ( 超长背景 ) 大型数字 ( 图形数字 ) 拖拉怪兽碰撞墙壁 键盘钢琴 ( 记录音符 ) 中文字逐字稿 英文字逐字稿 计算机 1 ( 显示数字 ) 计算机 2 ( 加减乘除 ) 云端聊天室 音乐播放器 推猫咪 ( 视频侦测 ) 围捕小鱼 ( 视频侦测 ) 戳泡泡 ( 视频侦测 )

视觉特效范例

视差效果 水中吐泡泡 雪花随风飘 键盘钢琴 ( 音符动画 ) 无限循环画中画 水底探照灯 狙击望远镜 ( 两倍变焦 ) 猫咪万花筒 仙女棒 ( 光迹效果 ) 骇客任务背景特效 放烟火 1 ( 往上发射 ) 放烟火 2 ( 爆炸效果 )

绘图范例

镜射画图 ( 对称图形 ) 小画家 ( 舞台上画图 ) 记录画图轨迹 绘制圆形 绘制椭圆形 绘制立方体 ( 会动 ) 绘制正多边形 绘制正多角星形 ( 单纯 ) 绘制正多角星形 ( 多线 ) 绘制抛物线 绘制折线图 绘制圆饼图 绘制圆饼图 ( 指示线 ) 蜘蛛结网 ( 八边形网 ) 绘制舞台方格 绘制正弦波形 ( sin ) 正弦波毛毛虫动画 显示声波图形

物理&模拟范例

钟摆运动 简单磁铁效果 两个磁铁的磁力线 立体空间 ( 三度空间 ) 循迹移动 抛物线发射炮弹 地球绕着太阳转 弹跳的篮球 电风扇 ( 控制强度 ) 拉不走的弹力球 惯性移动 ( 鼠标 ) 惯性移动 ( 键盘 )

入门游戏范例

猴子接香蕉 打地鼠 打地鼠 ( 体感视频侦测 ) 刮刮乐 吹风机吹头发 太空狗闪躲陨石 九九乘法测验 英文单字测验 钓鱼游戏 拍西瓜 ( 储存最高分 ) 宝可梦猜猜我是谁 ( 基本 ) 形状配对拼图 台湾地图拼图 英文打字机 英文打字机 ( 判断大小写 ) 射击外星人 猜数字 ( 猜大小 ) 猜数字 ( 几 A 几 B ) 连连看 ( 产生器 ) 连连看

进阶游戏范例

青蛙过河 青蛙过马路 反弹球 ( 乒乓球 ) 打砖块 狙击气球 ( 两倍变焦 ) Flappy Bird Flappy Bird ( 声控版 ) 走迷宫 ( 基本 ) 大型迷宫 ( 键盘控制 ) 大型迷宫 ( 鼠标控制 ) 翻卡记忆游戏 翻卡记忆游戏 ( 改良版 ) 井字棋 ( 圈圈叉叉 ) 九宫格拼图 九宫格拼图 ( 改良版 ) 音阶记忆 贪吃蛇 ( 分身版 ) 贪吃蛇 ( 画笔版 ) 小鸡下楼梯 拉霸机

团康游戏范例

摇骰子 ( 1~3 个 ) 比手画脚 ( 猜动物 ) 音乐传球游戏 大声公 ( 比赛谁的气长 ) 抽签 ( 可调整中签数量 ) 转盘指针 ( 指到谁就当鬼 ) 倒数计时器 ( 基本版 ) 倒数计时器 ( 大数字版 )

游戏设计技巧

角色 ( 地上移动 ) 角色 ( 蹲下、左右转 ) 角色 ( 跳耀、两段跳 ) 角色 ( 墙壁、爬墙 ) 地图 ( 清单转换 ) 地图 ( 二维数组 ) 地图 ( 控制移动 ) 地图 ( 墙壁碰撞侦测 ) 地图 ( 吃东西侦测 ) 俄罗斯方块 ( 角色与背景 ) 俄罗斯方块 ( 移动与碰撞 ) 俄罗斯方块 ( 放置方块 ) 俄罗斯方块 ( 消除完成方块 ) 俄罗斯方块 ( 下个形状 )

抽签 ( 可调整中签数量 )

这篇教学会利用 Scratch 角色的造型与变数的调整滑杆,搭配“区域变数”、“全域变数”和“广播”,制作可以自行设定抽签总数,以及中签数量的抽签小游戏。

快速导览:

绘制角色造型

使用“绘画”工具建立“签”的角色“straw”,角色有两个造型,第一个造型是“no”表示“没有中签”,内容为一根水平的长方形,第二个造型是“yes”表示“中签”,跟“no”的差异在于长方形左侧有一个红色圆形,内容有一个顺时针旋转 90 度的“中”字,整体造型位置对齐画布中心。

Scratch 教学 - 抽签 ( 可调整总数、中签数 ) - 使用“绘画”工具建立“签”的角色

使用“绘画”工具建立“显示结果”的角色“text”,角色有两个造型,第一个造型是“no”表示“没有中签”,内容为大型的文字“没中”,第二个造型是“yes”表示“中签”,内容为大型的文字“抽中啦”,整体造型位置对齐画布中心。

Scratch 教学 - 抽签 ( 可调整总数、中签数 ) - 使用“绘画”工具建立“显示结果”的角色

使用“绘画”工具建立“设定按钮”的角色“setting”,使用灰色黑框长方形,内容有文字 SETTING,整体造型位置对齐画布中心。

Scratch 教学 - 抽签 ( 可调整总数、中签数 ) - 使用“绘画”工具建立“设定按钮”的角色

使用“绘画”工具建立“设定面板”的角色“board”,使用浅色黑边长方形为底,上方有标题文字以及“抽签总数”和“中签数”两组文字,文字下方预计放入有调整滑杆的变数,整体造型位置对齐画布中心。

Scratch 教学 - 抽签 ( 可调整总数、中签数 ) - 使用“绘画”工具建立“设定面板”的角色

使用“绘画”工具建立“关闭面板按钮”的角色“close”,使用圆形搭配直线画出关闭的造型,整体造型位置对齐画布中心。

Scratch 教学 - 抽签 ( 可调整总数、中签数 ) - 使用“绘画”工具建立“关闭面板按钮”的角色

使用“绘画”工具建立“确认设定按钮”的角色“submit”,使用橘色黑框长方形,内容有文字 SUBMIT,整体造型位置对齐画布中心。

Scratch 教学 - 抽签 ( 可调整总数、中签数 ) - 使用“绘画”工具建立“送出设定按钮”的角色

抽签画面预计分成两种,第一种是“正在抽签”的画面,各个角色排列如下图:

Scratch 教学 - 抽签 ( 可调整总数、中签数 ) - “正在抽签”的画面

第二种是“设定”的画面,各个角色排列如下图:

Scratch 教学 - 抽签 ( 可调整总数、中签数 ) - “设定”的画面

积木程序原理 ( straw )

前往“straw”角色,这个角色是最重要的“签”,点击绿旗时设定变数总签数 total 为 10,中签数 total_ok 为 2,接着广播 clear 消息负责删除舞台上的抽签分身,等待分身都删除后广播 submit 消息。

收到 submit 消息,先设定变数 x 为 -200,这个变数表示签的水平座标可以动态更改,如果签小于 10 支,就根据签的数量动态改变 x 内容,最后透过定位的方式设定第一支签的位置。

Scratch 教学 - 抽签 ( 可调整总数、中签数 ) - 根据签的数量动态改变 x 内容

新增“中签号码”函数,勾选“执行完毕再更新画面”,预计执行后会产生中签的号码。

Scratch 教学 - 抽签 ( 可调整总数、中签数 ) - 新增“中签号码”函数

“中签号码”函数内容里,先判断如果中签数 total_ok 小于总签数 total,就将 total_ok 设定为 total 的数值 ( 避免中签数大于总签数 ),接着新增清单 ok_number,使用“重复...直到”积木,产生随机数之后,判断如果清单中没有产生的数字,就将该数字写入清单,直到清单长度等于中签数为止,如此一来就能使用 ok_number 清单储存中签的号码。

Scratch 教学 - 抽签 ( 可调整总数、中签数 ) - 使用清单储存中签的号码

新增“分身”函数,勾选“执行完毕再更新画面”,预计执行后会根据 total 和 total_ok 的数值,产生对应数量的分身。

Scratch 教学 - 抽签 ( 可调整总数、中签数 ) - 新增“分身”函数

“分身”函数内容里,先设定一个变数 n,接着根据签的总数进行重复,每次重复时将 n 增加 1,并判断 ok_number 清单里是否有 n 的数值,如果有,就将签改为中签的造型,如果没有就保持没有中签的造型,此外,也可以透过位置和亮度的调整,让每一签都有点不同,也可以运用简单的数学公式,每支签排列时都会带有一些旋转的角度。

Scratch 教学 - 抽签 ( 可调整总数、中签数 ) - “分身”函数内容

设定点击角色的程序 ( 点击角色支援点击分身 ),点击签的角色时,除了设定图层往前以及亮度之外,运用移动积木将签往上移动产生“抽签”效果,并根据签的造型决定是否中签,如果中签就发送 yes 信号,如果没有中签就发送 no,除此之外,当收到 clear 信号后,删除分身 ( 所有分身都会收到信号,收到后就会将自己删除 )。

Scratch 教学 - 抽签 ( 可调整总数、中签数 ) - 根据签的造型决定是否中签

编辑收到 submit 消息的程序,在最后方依序执行“中签号码”和“分身”函数。

Scratch 教学 - 抽签 ( 可调整总数、中签数 ) - 依序执行“中签号码”和“分身”函数。

到这个阶段,点击绿旗后应该就可以看见基本的抽签效果。

Scratch 教学 - 抽签 ( 可调整总数、中签数 ) - 初步完成效果

积木程序原理 ( text )

前往“text”角色,这个角色会使用大型文字显示是否中签,点击绿旗时隐藏角色,收到 yes 或 no 信号时,显示造型并切换为 yes 或 no 的造型,三秒后再度隐藏角色,如果收到 submit 信号,立刻终止所有的等待过程,隐藏角色。

Scratch 教学 - 抽签 ( 可调整总数、中签数 ) - 使用大型文字显示是否中签

积木程序原理 ( setting )

前往“setting”角色,这个角色是“设定按钮”,点击后会打开设定面板设定中签数和总数,点击绿旗时显示角色,点击角色后会发送 setting 信号并隐藏角色,收到 submit 和 close 信号时会再度显示角色。

Scratch 教学 - 抽签 ( 可调整总数、中签数 ) - 设定面板设定中签数和总数

积木程序原理 ( board )

前往“board”角色,这个角色是“设定面板”,面板中除了说明文字,还会包含具备拖拉滑杆的变数,点击绿旗以及收到 submit、close 信号时,隐藏角色以及隐藏 total 和 total_ok 变数,收到 setting 信号时,显示角色、total 和 total_ok 变数,并发送 show 信号 ( 面板上的按钮会接收 show 信号,避免被面板盖住 )。

Scratch 教学 - 抽签 ( 可调整总数、中签数 ) - 具备拖拉滑杆的变数

当变数出现在舞台上后,用鼠标在变数上按“右键”,将变数设定为“滑杆”,就能让用户自行调整数值。

Scratch 教学 - 抽签 ( 可调整总数、中签数 ) - 将变数设定为“滑杆”

点击“变更滑杆数值范围”,将 total 变数范围设定 2~20,total_ok 变数范围设定为 1~20。

Scratch 教学 - 抽签 ( 可调整总数、中签数 ) - 变更滑杆数值范围

积木程序原理 ( close )

前往“close”角色,这个角色是“关闭按钮”,点击后会关闭设定面板,设定点击绿旗、角色点击以及收到 submit 信号时隐藏角色,收到 show 信号时显示角色,并将角色的图层设定到最前方。

Scratch 教学 - 抽签 ( 可调整总数、中签数 ) - 关闭设定面板

积木程序原理 ( submit )

前往“submit”角色,这个角色是“确认设定按钮”,点击后会重新设定 total 和 total_ok 变数,并根据变数产生对应的画面,收到 show 信号时显示角色并将角色的图层设定到最前方,点击绿旗、收到 close 和点击角色时隐藏角色,但在点击角色时,必须使用“广播消息并等待”,确保收到 clear 信号的动作都完成后,再发送 submit 信号 ( 避免画面上还有前一次的分身 )。

Scratch 教学 - 抽签 ( 可调整总数、中签数 ) - 重新设定 total 和 total_ok 变数

完成效果

所有角色的程序都完成后,点击绿旗,舞台上会根据设定出现 2~20 支签,就能够开始进行抽签的小游戏啰。

Scratch 教学 - 抽签 ( 可调整总数、中签数 )

范例解答

范例解答:抽签 ( 可调整总数、中签数 )

意见反馈

微信二维码 微信扫码关注 抖音二维码 抖音扫码关注