搜索

Scratch 教程

基本介绍

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

图形与声音

绘制造型&背景 编辑音效

程序积木

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

扩充功能

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

技巧&观念

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

入门范例

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

进阶范例

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

视觉特效范例

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

绘图范例

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

物理&模拟范例

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

入门游戏范例

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

进阶游戏范例

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

团康游戏范例

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

游戏设计技巧

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

Flappy Bird

这篇文章会介绍,如何在 Scratch 里使用连续背景、变数、定位、座标、重复、侦测碰到其他角色...等积木,实作 Flappy Bird 小游戏。

相关文章参考:定位、重复、侦测碰到其他角色。

角色设定

在角色编辑区,删除猫咪角色,加入飞行猫咪“cat”角色。

Scratch 教学 - Flappy Bird - 飞行的猫咪角色

下载范例图片 ( 连续背景 ),使用“上传”方式建立背景“bg”角色,建立角色后,切换到“造型”页签,点击“转换成向量图”,将原本位图的图片转换成向量图对象,转换成向量图后,就可以很方便地改变位置和尺寸。

Scratch 教学 - Flappy Bird - 连续背景转换向量图

转换向量图后,使用选取工具放大图片 ( 可以先将图片移动到右下角,然后拖拉角落节点变更尺寸 )。

Scratch 教学 - Flappy Bird - 放大图片

将图片“对齐画布中心”,放大后的高度必须“大于 360”( 因为舞台高度为 360 )。

Scratch 教学 - Flappy Bird - 放大图片的尺寸

复制同一张图片并再度贴上,使用鼠标和件盘调整位置,将两张图片的边缘贴合,变成一张超长的图片,贴合的位置也是之后要重复背景的位置。

Scratch 教学 - Flappy Bird - 复制同一张图片并再度贴上

将组合后的超长背景的中心点对齐画布中心 ( 可以先将两张图片组成群组 ),记录组合后的实际长度 ( 范例图片为 1354 )

Scratch 教学 - Flappy Bird - 记录组合后的实际长度

下载范例图片 ( 水管 ),使用“上传”方式建立水管“pipe”角色。

Scratch 教学 - Flappy Bird - 建立水管角色

完成后,舞台上应该就能看到三个不同的角色。

Scratch 教学 - Flappy Bird - 三个不同的角色

积木程序原理 ( 猫咪 )

Flappy Bird 的游戏方式,是在按下键盘空白键时,让角色不断在舞台中跳耀,参考下表,可以使用简单的公式模拟重力加速度,图表的红色曲线是猫咪的“位置”,蓝色直线是每次重复时“y 座标要改变的数值”,因为每次要改变的数字会变多,所以下坠的幅度会越来越快,当按下空白键跳耀时,就将改变数值变成 10,就能产生跳耀的效果。

Scratch 教学 - Flappy Bird - 使用简单的公式模拟重力加速度

将猫咪移到最上层并定位到舞台正中间,接着新增一个名为 y 的变数,使用“重复无限次”、“如果...那么...否则”积木,判断是否按下空白键,如果按下空白键,就设定 y 为 10,如果没有按下空白键,就让 y 模拟重力加速度不断改变 -2,最后透过角色 y 的改变,就能够做到按下空白时,猫咪不断往上跳,没有按空白,猫咪往下自由落体的效果。

Scratch 教学 - Flappy Bird

完成后,点击绿旗,不断按压空白键,就可以看到猫咪在画面中上下跳动。

Scratch 教学 - Flappy Bird - 看到猫咪在画面中上下跳动

加入判断“鼠标键被按下”的逻辑,就能在手机或移动设备里,透过点按控制猫咪跳耀。

Scratch 教学 - Flappy Bird - 鼠标键被按下

接着为猫咪角色新增第二组绿旗点击程序,使用“重复无限次”搭配变数,实作每隔 0.1 秒就增加 0.1 分的计分逻辑,新增第三组绿旗点击程序,等待碰到水管 pipe 角色后,就停止所有重复程序。

Scratch 教学 - Flappy Bird - 等待碰到水管 pipe 角色后,就停止所有重复程序

积木程序原理 ( 背景 )

将背景“bg”角色,对齐舞台左侧,参考下图的公式,就能计算齐左侧后的座标,范例的角色宽度为 1354,计算座标为 1354/2 - 480/2 = 437 。

左侧 x 座标 = 角色宽/2 - 舞台宽/2

Scratch 教学 - Flappy Bird - 连续背景公式

当背景移动到 -240 时,就会是刚好背景连接的位置,也是要切换回原本 437 的时机点。

Scratch 教学 - Flappy Bird

根据这个原理撰写程序,让背景不断往左移动,抵达 -240 时,切换为 437。

Scratch 教学 - Flappy Bird

完成后,点击绿旗,背景就会不断往左移动,看起来就像猫咪不断往前飞。

Scratch 教学 - Flappy Bird

积木程序原理 ( 水管 )

因为画面中会不断出现水管,所以水管角色采用“分身”的方式进行,一开始先隐藏本尊,然后每隔一秒建立分身,就能够让水管每隔一秒不断出现。

Scratch 教学 - Flappy Bird

分身建立后,显示分身,新增一个“位置”变数,随机设定为 1 或 2,如果是 1,将分身定位在右边上方,如果是 2,将分身定位在右边下方 ( 高度使用 200~240 的随机数,让出现的高度不相同 ),接着使用“重复无限次”、“如果...那么...否则”积木,让水管不断往左移动,当移动到最左边时,就删除分身。

Scratch 教学 - Flappy Bird

完成效果

所有角色的程序都完成后,点击绿旗,就能够开始进行猫咪的 Flappy Bird 的游戏。

Scratch 教学 - Flappy Bird

范例解答

范例解答:Flappy Bird

延伸练习

如果已经熟悉了Flappy Bird的原理,还可以尝试更多好玩的作法:

  • 加上“计算碰撞次数”的机制。( 解答 )
  • 加上“计时”的机制。( 解答 )

意见反馈

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