杰瑞科技汇

scratch 游戏 教程

Scratch 游程开发全攻略

这份教程将分为三个部分:

  1. 入门篇:Scratch 基础与环境介绍
  2. 实战篇:制作一个“接苹果”小游戏
  3. 进阶篇:提升游戏质量的技巧与资源

第一部分:入门篇 - Scratch 基础与环境介绍

在开始制作游戏之前,我们先来熟悉一下 Scratch 的“工作台”。

什么是 Scratch?

Scratch 是由麻省理工学院(MIT)开发的一款图形化编程工具,你不需要写代码,而是通过拖拽不同颜色的“积木块”来组合指令,像搭积木一样创作自己的故事、动画、游戏和音乐,非常适合编程初学者,尤其是儿童和青少年。

Scratch 的工作界面

打开 Scratch 编辑器(scratch.mit.edu),你会看到三个主要区域:

  • A. 舞台区:你的角色表演和游戏进行的地方,你可以点击舞台上的绿旗来开始程序,点击红色小方块来停止。
  • B. 角色区:显示当前项目中的所有角色(精灵)和背景,你可以在这里添加、删除或选择角色。
  • C. 积木区:这里是所有编程指令的“仓库”,积木被分成了不同的颜色和类别,方便你查找。
    • 运动:控制角色的移动、旋转、显示/隐藏等。
    • 外观:改变角色的造型、大小、特效,以及显示气泡等。
    • 声音:播放声音、调整音量、控制节奏。
    • 事件:程序的“开关”,如“当绿旗被点击”、“当按下某个键”。
    • 控制:控制程序的流程,如“重复执行”、“....”、“等待”。
    • 侦测:检测角色是否碰到其他东西、鼠标位置、声音大小等。
    • 变量:创建可以存储数字或文字的“容器”,用于计分、计时等。
    • 更多积木:可以创建自己的“积木块”,实现更复杂的功能。

核心概念

  • 角色:舞台上所有可以移动的东西都是角色,比如小猫、苹果、玩家控制的飞船等。
  • 脚本:连接在一起的积木块,决定了角色在特定时间做什么事情。
  • 事件:触发脚本执行的“信号”,游戏通常以“当绿旗被点击”开始。
  • 循环:让一段代码重复执行,重复执行10次”或“永远执行”。
  • 条件判断:让程序根据不同情况做出不同反应,如果碰到苹果,那么加分”。

第二部分:实战篇 - 制作“接苹果”小游戏

我们将制作一个经典的小游戏:控制一个篮子左右移动,接住从天而降的苹果,接到就加分,漏掉就游戏结束。

游戏目标:

  • 用左右方向键控制篮子移动。
  • 接住掉落的苹果,每接一个得10分。
  • 如果苹果掉到地面,游戏结束。

步骤 1:准备角色和背景

  1. 选择背景:点击角色区下方的“选择一个背景”按钮,选择一个合适的背景,backdrops 文件夹里的 blue sky
  2. 选择角色
    • 篮子:点击“选择一个角色”,找到 Things 文件夹,选择 basket
    • 苹果:再次点击“选择一个角色”,找到 Things 文件夹,选择 apple

步骤 2:给篮子添加脚本(玩家控制)

  1. 点击角色区中的 basket,确保你正在为篮子编写脚本。
  2. 开始脚本:从 事件 类别中,拖出 “当绿旗被点击” 积木,这是所有脚本的起点。
  3. 设定初始位置:为了让游戏每次开始时篮子都在同一个位置,从 运动 类别中拖出 “将 x 坐标设定为 [0]”“将 y 坐标设定为 [-120]”,你可以把篮子拖到舞台中央下方,然后点击舞台上的坐标值来获取这个数字。
  4. 添加移动控制:从 控制 类别中拖出 “重复执行” 积木(让它变成“重复执行”),从 事件 类别中,找到 “当按下 [ ] 键” 积木,把它放到“重复执行”里面,点击下拉菜单,选择 “左箭头”
  5. 编写左移代码:在“当按下左箭头键”积木下面,从 运动 类别中拖出 “将 x 坐标增加 [-10]”,负数表示向左移动。
  6. 编写右移代码:复制“当按下左箭头键”这个积木块(右键点击 -> 复制),然后修改它为 “右箭头”,并把“将 x 坐标增加 [-10]”改为 “将 x 坐标增加 [10]”(正数表示向右移动)。

篮子的完整脚本如下:

效果:现在点击绿旗,你就可以用键盘的左右方向键控制篮子移动了!

步骤 3:给苹果添加脚本(掉落和计分)

  1. 点击角色区中的 apple
  2. 开始脚本:同样,从 事件 类别中拖出 “当绿旗被点击”
  3. 克隆自己:从 控制 类别中拖出 “重复执行”,从 控制 类别中拖出 “创建克隆体 [自己]” 积木,放到“重复执行”里面,这样就会不断产生新的苹果。
  4. 让克隆体执行动作:在“创建克隆体”下面,再拖一个 “当作为克隆体启动时” 积木,所有让苹果做的动作(比如掉落)都要放在这个积木下面。
  5. 设定初始位置:为了让苹果从随机位置掉落,我们需要一个随机数,从 运算 类别中拖出 “在 [1] 到 [10] 间随机选一个数” 积木,把它作为 将 x 坐标设定为 [ ] 的值,为了覆盖整个舞台,可以把范围改成 [-240][240]
  6. 苹果掉落:从 运动 类别中拖出 “将 y 坐标增加 [10]”,然后把它放进一个 “重复执行直到 [ ]” 的积木里,从 侦测 类别中找到 “碰到 [ ]” 积木,选择 “边缘”,这样苹果就会一直往下掉,直到碰到舞台边缘。
  7. 删除克隆体:在“重复执行直到碰到边缘”积木下面,从 控制 类别中拖出 “删除此克隆体”,这非常重要,可以避免游戏卡顿。

苹果的完整脚本如下:

效果:点击绿旗,苹果会从屏幕上方随机位置不断掉落。

步骤 4:添加计分功能

  1. 创建变量:点击舞台左上角的 “变量” 按钮,然后点击 “新建一个变量”
    • 变量名:输入 得分
    • 适用于所有角色:保持默认选择。
  2. 为变量初始化:点击 basket 角色,在它的脚本末尾,从 变量 类别中拖出 “将 [得分] 设定为 [0]”,这样每次点击绿旗,分数都会清零。
  3. 编写计分逻辑:点击 apple 角色,在“当作为克隆体启动时”的脚本里,在“删除此克隆体”之前,加入计分逻辑。
    • 控制 类别中拖出 “[ ] [ ]” 积木。
    • 侦测 类别中找到 “碰到 [ ]” 积木,选择 basket
    • 变量 类别中拖出 “将 [得分] 增加 [1]” 积木,放到“....”的“部分,我们可以把1改成10,表示接到一个苹果得10分。

苹果更新后的脚本(关键部分):

步骤 5:添加游戏结束逻辑

  1. 创建变量:再创建一个变量,命名为 游戏结束
  2. 初始化变量:同样,在 basket 的脚本开头,加入 “将 [游戏结束] 设定为 [0]”
  3. 判断苹果是否落地:回到 apple 的脚本,在“重复执行直到碰到边缘”积木里,我们需要判断,如果苹果掉到底部,游戏就结束。
    • 将 y 坐标增加 [10] 下面,再放一个 “[ ] [ ]”
    • 条件是 “碰到 [ ]”,选择 “下边缘”
    • 在“部分,从 变量 类别中拖出 “将 [游戏结束] 设定为 [1]”
  4. 停止游戏:在“如果碰到下边缘”积木下面,拖出 “停止全部 [其他脚本 v]”,这会停止所有角色的脚本,实现游戏结束。

苹果最终脚本(关键部分):

步骤 6:完善游戏体验

  1. 显示得分:点击 得分 变量旁边的复选框,让它始终显示在舞台上。
  2. 游戏结束提示:点击 basket 角色,在它的脚本最后(在“停止全部”之后),添加一个游戏结束的提示。
    • 外观 类别中拖出 “说 [Hello!] for [2] 秒”
    • Hello! 改成 游戏结束!你的得分是:
    • 变量 类别中拖出 得分 积木,把它拼接到文字后面。
  3. 重新开始功能:为了让玩家可以重新开始,我们需要一个循环。
    • basket 的脚本开头,把所有初始化操作(设定位置、设定分数、设定游戏结束)都放进一个 “重复执行直到 [ ]” 积木里。
    • 条件是 “[游戏结束] = [1]”
    • 在这个循环的最后,放一个 “等待 [1] 秒”,避免循环太快。
    • 把所有初始化操作放在这个循环内部,这样当游戏结束后,等待1秒,变量被重置,游戏就可以重新开始了。

篮子最终脚本:

恭喜你!

一个完整的“接苹果”小游戏就制作完成了!点击绿旗试试看吧!


第三部分:进阶篇 - 提升游戏质量的技巧与资源

当你掌握了基础后,可以尝试用这些技巧让你的游戏更上一层楼。

角色造型切换

  • 应用场景:制作行走动画、攻击动作、受伤效果等。
  • 方法
    1. 在角色区选中一个角色,点击“造型”选项卡。
    2. 点击“导入”按钮,导入多个不同姿势的图片(或者自己绘制)。
    3. 外观 类别中,使用 “下一个造型”“将造型切换到 [ ]” 积木来切换。
    4. 结合 控制 里的 “重复执行”侦测 里的 “碰到 [ ]”,就可以实现动画效果。

背景音乐与音效

  • 应用场景:增加游戏的沉浸感。
  • 方法
    1. 声音 类别中,点击 “选择一个声音”“录制声音”
    2. 背景音乐:为舞台或某个角色添加一个 “开始播放声音 [ ]” 积木,并勾选 “直到播放完毕”,如果想循环播放,就用 “播放声音 [ ] 直到播放完毕” 包在一个 “重复执行” 里。
    3. 音效:在关键事件上播放短音效,比如接到苹果时播放一个“叮”的声音,游戏结束时播放一个“爆炸”的声音。

使用广播进行角色间通信

  • 应用场景:当一个角色发生某件事时,通知另一个角色,玩家碰到敌人时,通知“生命值”变量减少。
  • 方法
    1. 事件 类别中,拖出 “广播 [ ]”“当接收到 [ ]” 积木。
    2. 广播者apple 角色碰到下边缘时,广播 [游戏结束]
    3. 接收者:比如一个 game over 背景,它的脚本可以是 “当接收到 [游戏结束]” -> “显示”,这样就能实现一个淡入的游戏结束画面。

利用“我的积木”创建自定义功能

  • 应用场景:将一段重复使用的代码打包成一个“积木”,让脚本更简洁、更易读。
  • 方法
    1. 点击积木区左下角的 “我的积木”“制作一个积木”
    2. 给积木起个名字,移动篮子
    3. 在定义好的积木下面,把你原来篮子移动的代码(左右方向键控制)放进去。
    4. 你就可以像使用普通积木一样,直接拖动 移动篮子 这个自定义积木到任何地方了。

学习资源

  • 官方示例:在 Scratch 官网上,有海量的项目可以学习,点击“探索”,找到你感兴趣的游戏,点击“查看代码”,学习别人的实现方式。
  • Scratch 官方教程:Scratch 官网提供了很多高质量的入门和进阶教程。
  • Bilibili / YouTube:搜索“Scratch 游戏教程”,有大量中文视频教程,手把手教你制作各种类型的游戏(如飞机大战、平台跳跃、贪吃蛇等)。

祝你编程愉快,创作出属于自己的精彩游戏!

分享:
扫描分享到社交APP
上一篇
下一篇