搜索

Scratch 教程

基本介绍

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

图形与声音

绘制造型&背景 编辑音效

程序积木

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

扩充功能

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

技巧&观念

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

入门范例

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

进阶范例

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

视觉特效范例

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

绘图范例

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

物理&模拟范例

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

入门游戏范例

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

进阶游戏范例

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

团康游戏范例

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

游戏设计技巧

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

拉霸机

这篇文章会介绍透过 Scratch 的角色位置的换算,搭配清单、函数、全域变数和区域变数,实作一个俗称“吃角子老虎机”的拉霸机效果。

快速导览:

绘制角色 ( 拉霸机花色 )

制作拉霸机的关键点在于“花色”的角色,必须按照步骤实作,过程中请务必确认位置和尺寸是否相同,首先使用“绘画”的方式建立角色“shape”作为拉霸机的花色,使用方形工具绘绘制一个“60x60,白色无边框”的正方形,并将正方形对齐画布的中心点 ( 使用鼠标拖拉正方形靠近画布中心点时,会自动吸附到画布中心点 )。

Scratch 教学 - 拉霸机 ( 吃角子老虎机、Slot Machine ) - 60x60,白色无边框正方形

继续使用方形工具,在白色正方形里绘制图案,注意图案尺寸不要超过白色正方形,完成后全选图案和正方形,点击上方“建立群组”按钮将其组合成群组。

Scratch 教学 - 拉霸机 ( 吃角子老虎机、Slot Machine ) - 在白色正方形里绘制图案

复制群组,先将复制的群组对齐画布中心,往上移动 60 点,使尺寸变成 60x120,接着解散群组。

Scratch 教学 - 拉霸机 ( 吃角子老虎机、Slot Machine ) - 往上移动 60 点,使尺寸变成 60x120

解散群组后就可以修改图形,将原本的图案改成其他的图案 ( 范例将绿色正方形改成黄色三角形 )。

Scratch 教学 - 拉霸机 ( 吃角子老虎机、Slot Machine ) - 将原本的图案改成其他的图案

接着如法炮制,绘制许多不同的图案,并调整上下位置,因为每一组图案的高度都是 60,因此上下移动时也都采用 60 为单位移动,范例使用 15 组图案,尺寸就会是 60x900 ( 60x15=900 ),对齐时可以使用 ctrl + a 全选移动,将“第四组”图案用目测的方式对齐画布中心,上方还会有三组图案。

Scratch 教学 - 拉霸机 ( 吃角子老虎机、Slot Machine ) - 使用 15 组图案

绘制角色 ( 拉拉霸机、猫咪 )

使用“绘画”的方式建立角色“bg”作为拉霸机的造型,绘制时使用许多深棕色四边形,搭配一些文字和边框,实作如下图的造型,注意中间需要保留一些透明区域,作为呈现花色使用。

Scratch 教学 - 拉霸机 ( 吃角子老虎机、Slot Machine ) - 建立角色“*bg*”作为拉霸机的造型

使用“选个角色”的方式建立角色“cat”,角色选择 Scratch 默认的猫咪,完成后将花色 shape、拉霸机 bg 和猫咪 cat 按照下图,排列在舞台中,并按照自己的绘制方式调整位置,使得拉霸机具备可以呈现三组花色的空间*。

Scratch 教学 - 拉霸机 ( 吃角子老虎机、Slot Machine ) - 按照自己的绘制方式调整位置,使得拉霸机具备可以呈现三组花色的空间

程序原理 ( 拉霸机花色 )

点击“shape”角色,从左侧积木清单里新增“建立分身”函数,勾选“执行完毕再更新画面”。

Scratch 教学 - 拉霸机 ( 吃角子老虎机、Slot Machine ) - 新增“建立分身”函数

先将角色定位在 (-80,0),接着透过函数产生三个分身,每次产生分身后就往右边移动 80 点,完成后隐藏本尊。

Scratch 教学 - 拉霸机 ( 吃角子老虎机、Slot Machine ) - 新增“建立分身”函数

从左侧积木清单里新增“形状清单”函数,勾选“执行完毕再更新画面”。

Scratch 教学 - 拉霸机 ( 吃角子老虎机、Slot Machine ) - 新增“形状清单”函数

形状清单的函数主要负责“建立花色形状的清单”,由于花色可能很多,可以透过“文字转清单”的方式,先建立 source 和 n 变数,根据花色建立对应的文字字串 ( 例如红绿黄就会是 rgy ),接着运用重复循环建立清单。

Scratch 教学 - 拉霸机 ( 吃角子老虎机、Slot Machine ) - 文字转清单

从左侧积木清单里,建立“仅适用当前角色”的区域变数“$_shape”,目的在于“分别控制”不同的分身,变数名称开头使用“$_”区分区域变数和全域变数。

Scratch 教学 - 拉霸机 ( 吃角子老虎机、Slot Machine ) - 仅适用当前角色

编辑“当分身产生”的程序,让三组花色以随机高度出现,并运用 $_shape 区域变数搭配 x 座标,当按下空白键或鼠标时,分身会由左到右每隔 0.5 秒依序做动作。

Scratch 教学 - 拉霸机 ( 吃角子老虎机、Slot Machine ) - 运用区域变数搭配 x 座标

从左侧积木清单里新增“转动”函数,不要勾选“执行完毕再更新画面”,替函数加入转动次数 num、速度 v 和加速 dy 三个参数。

Scratch 教学 - 拉霸机 ( 吃角子老虎机、Slot Machine ) - 加入转动次数 num、速度 v 和加速 dy 三个参数

从左侧积木清单里,建立“仅适用当前角色”的区域变数“$_dy”,目的在让不同分身之间的加减速不会互相影响,变数名称开头使用“$_”区分区域变数和全域变数。

Scratch 教学 - 拉霸机 ( 吃角子老虎机、Slot Machine ) - 仅适用当前角色

编辑“转动”函数内容,函数主要负责花色的转动,除了“等速”转动,还会根据加速减速的参数进行加速或减速,转动时加入逻辑判断,如果 y 的位置太低就设定角色的 y 座标为 480。

Scratch 教学 - 拉霸机 ( 吃角子老虎机、Slot Machine ) - 根据加速减速的参数进行加速或减速

编辑“当分身产生”的程序,加入三组“转动”函数,依序是“加速、等速、减速”,完成后先将 y 座标补满成 60 的倍数,在滑动 0.2 秒到“y 座标 + 60”的位置 ( 往上滑动一格 ),做出拟真的拉霸停止效果,当拉霸停止后,根据目前所在的 y 座标换算出数值,透过数值取得 shape 清单里的名称,将名称存入 result 清单里。

Scratch 教学 - 拉霸机 ( 吃角子老虎机、Slot Machine ) - 做出拟真的拉霸停止效果

从左侧积木清单里新增“判断得分”函数,勾选“执行完毕再更新画面”。

Scratch 教学 - 拉霸机 ( 吃角子老虎机、Slot Machine ) - 新增“形状清单”函数

当花色停止转动后,使用“判断得分”函数判断 result 清单内容,如果清单内容三个都相同表示中大奖,发送广播信号 1,如果只有两个相同就发送广播信号 2。

Scratch 教学 - 拉霸机 ( 吃角子老虎机、Slot Machine ) - 新增“形状清单”函数

程序原理 ( 拉霸机、猫咪 )

点击拉霸机“bg”角色,设定点击绿旗时的定位以及在最上层。

Scratch 教学 - 拉霸机 ( 吃角子老虎机、Slot Machine ) - 设定点击绿旗时的定位以及在最上层

点击猫咪“cat”角色,设定点击绿旗时的定位以及在最上层,并设定收到 0、1、2 的广播时要讲的内容。

Scratch 教学 - 拉霸机 ( 吃角子老虎机、Slot Machine ) - 设定收到 0、1、2 的广播时要讲的内容

效果展示

完成后点击绿旗,就可以开始拉霸机的吃角子老虎机游戏。

Scratch 教学 - 拉霸机 ( 吃角子老虎机、Slot Machine )

范例解答

范例解答:Scratch 教学 - 拉霸机 ( 吃角子老虎机、Slot Machine )

意见反馈

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