Scratch 游程开发全攻略
这份教程将分为三个部分:
- 入门篇:Scratch 基础与环境介绍
- 实战篇:制作一个“接苹果”小游戏
- 进阶篇:提升游戏质量的技巧与资源
第一部分:入门篇 - Scratch 基础与环境介绍
在开始制作游戏之前,我们先来熟悉一下 Scratch 的“工作台”。
什么是 Scratch?
Scratch 是由麻省理工学院(MIT)开发的一款图形化编程工具,你不需要写代码,而是通过拖拽不同颜色的“积木块”来组合指令,像搭积木一样创作自己的故事、动画、游戏和音乐,非常适合编程初学者,尤其是儿童和青少年。
Scratch 的工作界面
打开 Scratch 编辑器(scratch.mit.edu),你会看到三个主要区域:
- A. 舞台区:你的角色表演和游戏进行的地方,你可以点击舞台上的绿旗来开始程序,点击红色小方块来停止。
- B. 角色区:显示当前项目中的所有角色(精灵)和背景,你可以在这里添加、删除或选择角色。
- C. 积木区:这里是所有编程指令的“仓库”,积木被分成了不同的颜色和类别,方便你查找。
- 运动:控制角色的移动、旋转、显示/隐藏等。
- 外观:改变角色的造型、大小、特效,以及显示气泡等。
- 声音:播放声音、调整音量、控制节奏。
- 事件:程序的“开关”,如“当绿旗被点击”、“当按下某个键”。
- 控制:控制程序的流程,如“重复执行”、“....”、“等待”。
- 侦测:检测角色是否碰到其他东西、鼠标位置、声音大小等。
- 变量:创建可以存储数字或文字的“容器”,用于计分、计时等。
- 更多积木:可以创建自己的“积木块”,实现更复杂的功能。
核心概念
- 角色:舞台上所有可以移动的东西都是角色,比如小猫、苹果、玩家控制的飞船等。
- 脚本:连接在一起的积木块,决定了角色在特定时间做什么事情。
- 事件:触发脚本执行的“信号”,游戏通常以“当绿旗被点击”开始。
- 循环:让一段代码重复执行,重复执行10次”或“永远执行”。
- 条件判断:让程序根据不同情况做出不同反应,如果碰到苹果,那么加分”。
第二部分:实战篇 - 制作“接苹果”小游戏
我们将制作一个经典的小游戏:控制一个篮子左右移动,接住从天而降的苹果,接到就加分,漏掉就游戏结束。
游戏目标:
- 用左右方向键控制篮子移动。
- 接住掉落的苹果,每接一个得10分。
- 如果苹果掉到地面,游戏结束。
步骤 1:准备角色和背景
- 选择背景:点击角色区下方的“选择一个背景”按钮,选择一个合适的背景,
backdrops文件夹里的blue sky。 - 选择角色:
- 篮子:点击“选择一个角色”,找到
Things文件夹,选择basket。 - 苹果:再次点击“选择一个角色”,找到
Things文件夹,选择apple。
- 篮子:点击“选择一个角色”,找到
步骤 2:给篮子添加脚本(玩家控制)
- 点击角色区中的
basket,确保你正在为篮子编写脚本。 - 开始脚本:从
事件类别中,拖出 “当绿旗被点击” 积木,这是所有脚本的起点。 - 设定初始位置:为了让游戏每次开始时篮子都在同一个位置,从
运动类别中拖出 “将 x 坐标设定为 [0]” 和 “将 y 坐标设定为 [-120]”,你可以把篮子拖到舞台中央下方,然后点击舞台上的坐标值来获取这个数字。 - 添加移动控制:从
控制类别中拖出 “重复执行” 积木(让它变成“重复执行”),从事件类别中,找到 “当按下 [ ] 键” 积木,把它放到“重复执行”里面,点击下拉菜单,选择 “左箭头”。 - 编写左移代码:在“当按下左箭头键”积木下面,从
运动类别中拖出 “将 x 坐标增加 [-10]”,负数表示向左移动。 - 编写右移代码:复制“当按下左箭头键”这个积木块(右键点击 -> 复制),然后修改它为 “右箭头”,并把“将 x 坐标增加 [-10]”改为 “将 x 坐标增加 [10]”(正数表示向右移动)。
篮子的完整脚本如下:
效果:现在点击绿旗,你就可以用键盘的左右方向键控制篮子移动了!
步骤 3:给苹果添加脚本(掉落和计分)
- 点击角色区中的
apple。 - 开始脚本:同样,从
事件类别中拖出 “当绿旗被点击”。 - 克隆自己:从
控制类别中拖出 “重复执行”,从控制类别中拖出 “创建克隆体 [自己]” 积木,放到“重复执行”里面,这样就会不断产生新的苹果。 - 让克隆体执行动作:在“创建克隆体”下面,再拖一个 “当作为克隆体启动时” 积木,所有让苹果做的动作(比如掉落)都要放在这个积木下面。
- 设定初始位置:为了让苹果从随机位置掉落,我们需要一个随机数,从
运算类别中拖出 “在 [1] 到 [10] 间随机选一个数” 积木,把它作为将 x 坐标设定为 [ ]的值,为了覆盖整个舞台,可以把范围改成[-240]到[240]。 - 苹果掉落:从
运动类别中拖出 “将 y 坐标增加 [10]”,然后把它放进一个 “重复执行直到 [ ]” 的积木里,从侦测类别中找到 “碰到 [ ]” 积木,选择 “边缘”,这样苹果就会一直往下掉,直到碰到舞台边缘。 - 删除克隆体:在“重复执行直到碰到边缘”积木下面,从
控制类别中拖出 “删除此克隆体”,这非常重要,可以避免游戏卡顿。
苹果的完整脚本如下:
效果:点击绿旗,苹果会从屏幕上方随机位置不断掉落。
步骤 4:添加计分功能
- 创建变量:点击舞台左上角的 “变量” 按钮,然后点击 “新建一个变量”。
- 变量名:输入
得分。 - 适用于所有角色:保持默认选择。
- 变量名:输入
- 为变量初始化:点击
basket角色,在它的脚本末尾,从变量类别中拖出 “将 [得分] 设定为 [0]”,这样每次点击绿旗,分数都会清零。 - 编写计分逻辑:点击
apple角色,在“当作为克隆体启动时”的脚本里,在“删除此克隆体”之前,加入计分逻辑。- 从
控制类别中拖出 “[ ] [ ]” 积木。 - 从
侦测类别中找到 “碰到 [ ]” 积木,选择basket。 - 从
变量类别中拖出 “将 [得分] 增加 [1]” 积木,放到“....”的“部分,我们可以把1改成10,表示接到一个苹果得10分。
- 从
苹果更新后的脚本(关键部分):
步骤 5:添加游戏结束逻辑
- 创建变量:再创建一个变量,命名为
游戏结束。 - 初始化变量:同样,在
basket的脚本开头,加入 “将 [游戏结束] 设定为 [0]”。 - 判断苹果是否落地:回到
apple的脚本,在“重复执行直到碰到边缘”积木里,我们需要判断,如果苹果掉到底部,游戏就结束。- 在
将 y 坐标增加 [10]下面,再放一个 “[ ] [ ]”。 - 条件是 “碰到 [ ]”,选择 “下边缘”。
- 在“部分,从
变量类别中拖出 “将 [游戏结束] 设定为 [1]”。
- 在
- 停止游戏:在“如果碰到下边缘”积木下面,拖出 “停止全部 [其他脚本 v]”,这会停止所有角色的脚本,实现游戏结束。
苹果最终脚本(关键部分):
步骤 6:完善游戏体验
- 显示得分:点击
得分变量旁边的复选框,让它始终显示在舞台上。 - 游戏结束提示:点击
basket角色,在它的脚本最后(在“停止全部”之后),添加一个游戏结束的提示。- 从
外观类别中拖出 “说 [Hello!] for [2] 秒”。 - 把
Hello!改成游戏结束!你的得分是:。 - 从
变量类别中拖出得分积木,把它拼接到文字后面。
- 从
- 重新开始功能:为了让玩家可以重新开始,我们需要一个循环。
- 在
basket的脚本开头,把所有初始化操作(设定位置、设定分数、设定游戏结束)都放进一个 “重复执行直到 [ ]” 积木里。 - 条件是 “[游戏结束] = [1]”。
- 在这个循环的最后,放一个 “等待 [1] 秒”,避免循环太快。
- 把所有初始化操作放在这个循环内部,这样当游戏结束后,等待1秒,变量被重置,游戏就可以重新开始了。
- 在
篮子最终脚本:
恭喜你!
一个完整的“接苹果”小游戏就制作完成了!点击绿旗试试看吧!
第三部分:进阶篇 - 提升游戏质量的技巧与资源
当你掌握了基础后,可以尝试用这些技巧让你的游戏更上一层楼。
角色造型切换
- 应用场景:制作行走动画、攻击动作、受伤效果等。
- 方法:
- 在角色区选中一个角色,点击“造型”选项卡。
- 点击“导入”按钮,导入多个不同姿势的图片(或者自己绘制)。
- 在
外观类别中,使用 “下一个造型” 和 “将造型切换到 [ ]” 积木来切换。 - 结合
控制里的 “重复执行” 和侦测里的 “碰到 [ ]”,就可以实现动画效果。
背景音乐与音效
- 应用场景:增加游戏的沉浸感。
- 方法:
- 从
声音类别中,点击 “选择一个声音” 或 “录制声音”。 - 背景音乐:为舞台或某个角色添加一个 “开始播放声音 [ ]” 积木,并勾选 “直到播放完毕”,如果想循环播放,就用 “播放声音 [ ] 直到播放完毕” 包在一个 “重复执行” 里。
- 音效:在关键事件上播放短音效,比如接到苹果时播放一个“叮”的声音,游戏结束时播放一个“爆炸”的声音。
- 从
使用广播进行角色间通信
- 应用场景:当一个角色发生某件事时,通知另一个角色,玩家碰到敌人时,通知“生命值”变量减少。
- 方法:
- 从
事件类别中,拖出 “广播 [ ]” 和 “当接收到 [ ]” 积木。 - 广播者:
apple角色碰到下边缘时,广播 [游戏结束]。 - 接收者:比如一个
game over背景,它的脚本可以是 “当接收到 [游戏结束]” -> “显示”,这样就能实现一个淡入的游戏结束画面。
- 从
利用“我的积木”创建自定义功能
- 应用场景:将一段重复使用的代码打包成一个“积木”,让脚本更简洁、更易读。
- 方法:
- 点击积木区左下角的 “我的积木”,“制作一个积木”。
- 给积木起个名字,
移动篮子。 - 在定义好的积木下面,把你原来篮子移动的代码(左右方向键控制)放进去。
- 你就可以像使用普通积木一样,直接拖动
移动篮子这个自定义积木到任何地方了。
学习资源
- 官方示例:在 Scratch 官网上,有海量的项目可以学习,点击“探索”,找到你感兴趣的游戏,点击“查看代码”,学习别人的实现方式。
- Scratch 官方教程:Scratch 官网提供了很多高质量的入门和进阶教程。
- Bilibili / YouTube:搜索“Scratch 游戏教程”,有大量中文视频教程,手把手教你制作各种类型的游戏(如飞机大战、平台跳跃、贪吃蛇等)。
祝你编程愉快,创作出属于自己的精彩游戏!
