搜索

Scratch 教程

基本介绍

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

图形与声音

绘制造型&背景 编辑音效

程序积木

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

扩充功能

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

技巧&观念

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

入门范例

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

进阶范例

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

视觉特效范例

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

绘图范例

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

物理&模拟范例

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

入门游戏范例

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

进阶游戏范例

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

团康游戏范例

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

游戏设计技巧

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

绘制圆饼图

这篇教学会利用 Scratch 的画笔功能,搭配简单的“画圆”数学式,根据清单的数值,在画布里快速绘制圆饼图。

快速导览:

圆形 ( 圆饼图 ) 公式

圆饼图其实是“圆形”图案的变形版本,差别在于圆形要绘制一整圈 360 度,圆饼图则只需绘制固定的角度,绘制圆形的公式如下:

  • 圆心:(x0,y0)
  • 半径:r
  • 夹角:θ ( 角度 )
  • 圆周上每个点的 x = x0 + r × cos(θ)
  • 圆周上每个点的 y = y0 + r × sin(θ)

Scratch 教学 - 绘制圆饼图 - 圆形 ( 圆饼图 ) 公式

绘制圆形与扇形

首先使用“绘图”工具建立一个“空白”的角色,空白的角色表示只有一个造型,且造型为空。

Scratch 教学 - 绘制圆饼图 - 建立一个“空白”的角色

根据公式撰写程序,使用重复 360 次的方式 ( 圆周为 360 度 ),就能将角色定位在圆形圆周的每个点的座标上,运用画笔就能画出一个圆心 (0, 0) 半径 100 的空心圆形。

Scratch 教学 - 绘制圆饼图 - 将角色定位在圆形圆周的每个点的座标上

由于 Scratch 的重复循环搭配定位积木,默认有 0.03 秒的等待时间,完成后点击绿旗就会看见舞台上“逐渐显示”圆形。

Scratch 教学 - 绘制圆饼图 - 舞台上“逐渐显示”圆形

如果要将圆形改成扇形,则要从“圆心下笔”,下笔后将座标移动到圆形的圆周,等待前往指定的角度后,再将画笔移动回圆心。

Scratch 教学 - 绘制圆饼图 - 将圆形改成扇形

完成后点击绿旗就会看见舞台上“逐渐显示”扇形。

Scratch 教学 - 绘制圆饼图 - 舞台上“逐渐显示”扇形

使用函数,勾选执行完毕再更新画面

为了避免 Scratch 默认的 0.03 秒延迟,造成缓慢的绘图过程,可以新增一个名为“绘制圆形”的函数,勾选“执行完毕再更新画面”,勾选后 Scratch 就会在函数里取消默认的等待延迟。

Scratch 教学 - 绘制圆饼图 - 执行完毕再更新画面

将刚刚绘制圆形的程序积木放到函数里,执行函数后,舞台上就会立刻出现一个圆形。

Scratch 教学 - 绘制圆饼图 - 舞台上就会立刻出现一个圆形

为了让函数更能够“重复利用”,编辑“绘制圆形”函数,替函数加上 x、y、r 和 angle 四个参数与说明文字,如此一来就能单纯改变参数,重复利用函数。

Scratch 教学 - 绘制圆饼图 - 替函数加上 x、y、r 和 angle 四个参数与说明文字

将函数的参数按照下图放到指定的位置,并在绘图结束后停笔。

Scratch 教学 - 绘制圆饼图 - 替函数加上 x、y、r 和 angle 四个参数与说明文字

完成后执行程序,舞台中就会立刻出现两个圆 ( 因为执行不同参数的函数两次 )。

Scratch 教学 - 绘制圆饼图 - 舞台中就会立刻出现两个圆

下图的程序码执行后,会在舞台中画出两个扇形。

Scratch 教学 - 绘制圆饼图 - 在舞台中画出两个扇形

绘制圆饼图

圆饼图的原理就是“多个扇形的组合”,首先在原本的扇形程序码里,加入“返回圆心”的积木,执行后就会产生许多“密集的放射线”,这些放射线只要足够密集,就能产生“实心”的扇形,以下图为例,如果以每隔一度的方式绘制放射线,还是会看到一些背景颜色 ( 放射线越往外,彼此的间距就会变大 )。

Scratch 教学 - 绘制圆饼图 - 这些放射线只要足够密集,就能产生“实心”的扇形

修改程序码,将重复的次数增加 10 倍,每次重复改变的角度改为 1/10 倍,就能得到漂亮的实心图案。

Scratch 教学 - 绘制圆饼图 - 得到漂亮的实心图案

为了可以调整扇形的“起始角度”和“颜色”,按照下图将“绘制圆形”函数改名成“绘制扇形”,并加入 deg1、deg2 和 color 参数 ( deg1 由 angle 参数修改而来 )。

Scratch 教学 - 绘制圆饼图 - 为了可以调整扇形的“起始角度”和“颜色”

修改函数内容,将 deg1、deg2 和 color 参数放入指定的位置,并增加 repeat 参数计算重复次数,因为在 deg2 大于 deg1 的正常状态下,扇形会“逆时针”绘制,但如果 deg1 大于 deg2 就会变成顺时针绘制,为了避免这个状况,需要将 deg2 增加 360,才能正常的逆时针绘图。

此外将原本笔迹颜色积木,改成可以透过数字调整的“笔迹颜色设定”积木,并加入笔迹亮度 100 积木。

Scratch 教学 - 绘制圆饼图 - 增加 repeat 参数计算重复次数

多次执行函数,就能在舞台中画出圆饼图。

Scratch 教学 - 绘制圆饼图 - 在舞台中画出圆饼图

根据数据绘制圆饼图

在点击绿旗的时候,新增 data 清单和 total 总数,参考下图,在清单里加入 5~10 笔 100~1000 的随机数,并计算清单数值的总和。

Scratch 教学 - 绘制圆饼图 - 新增 data 清单和 total 总数

新增名为“绘制圆饼图”函数,勾选“执行完毕再更新画面”。

Scratch 教学 - 绘制圆饼图 - 执行完毕再更新画面

参考下图编辑函数内容,让函数可以根据数据和数据总和的关系,计算出起始角度和结束角度,并呼叫“绘制扇形”函数进行绘图。

Scratch 教学 - 绘制圆饼图 - 新增 data 清单和 total 总数

完成后,执行函数,就能够根据数据,得到漂亮的圆饼图。

Scratch 教学 - 绘制圆饼图

范例解答

范例解答:Scratch 教学 - 绘制圆饼图

意见反馈

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