
用 Scratch 做一个跑酷游戏:编程入门实录
用 Scratch 做一个跑酷游戏:编程入门实录
我第一次用 Scratch 做游戏的时候,以为编程很难。结果发现,Scratch 就像搭积木——把不同颜色的代码块拼在一起,就能让角色动起来。今天我带你做一个跑酷游戏,从零开始,保证你能跟上。
准备工作
- 打开浏览器,访问 scratch.mit.edu
- 点击"创建"进入编辑器
- 不用注册也能用,但建议注册一个账号方便保存
第一步:创建角色
我们需要两个角色:玩家和障碍物。
玩家角色
- 点击右下角"选择一个角色"
- 搜索"Cat"(小猫),选那个经典的 Scratch 猫
- 或者你可以画一个自己的角色——点"绘制"自己画一个火柴人也行
障碍物角色
- 再添加一个新角色
- 搜索"Tree"或"Rock",选一个作为障碍物
- 把它缩小到合适大小(在属性面板里调整大小为 50 左右)
第二步:让玩家跳起来
跑酷游戏的核心操作就是跳跃。选中玩家角色,添加以下积木:
初始化位置
当绿旗被点击
将 x 设为 (-150)
将 y 设为 (-100)
这段代码让玩家每次开始游戏都在同一个位置。
跳跃逻辑
当按下 [空格] 键
如果 <(y 坐标) = (-100)> 那么
重复 (10) 次
将 y 增加 (15)
等待 (0.01) 秒
重复 (10) 次
将 y 增加 (-15)
原理很简单:
- 按空格时,先检查角色是不是在地面上(y = -100)
- 如果在地面,先往上移动 10 次(每次 15 步)——这是上升
- 然后往下移动 10 次——这是下落
点击绿旗试试,按空格你的角色应该能跳起来了。
第三步:让障碍物动起来
跑酷游戏需要障碍物从右往左移动,制造"奔跑"的感觉。
选中障碍物角色,添加代码:
当绿旗被点击
重复无限次
将 x 设为 (250)
显示
重复直到 <(x 坐标) < (-250)>
将 x 增加 (-8)
隐藏
等待 (在 1 到 3 之间取随机数) 秒
这段代码做了这些事:
- 障碍物从屏幕右边出发
- 每次向左移动 8 步
- 移出屏幕后消失
- 随机等 1-3 秒再出现下一个
注意:重复直到 的条件是 x 坐标小于 -250,意思是障碍物移出左边屏幕。
第四步:碰撞检测——游戏结束
如果玩家撞到障碍物,游戏应该结束。
在玩家角色上添加:
当绿旗被点击
重复无限次
如果 <碰到 [障碍物] ?> 那么
说出 [Game Over!] 持续 (2) 秒
停止 [全部]
这段代码不断检查玩家是否碰到了障碍物。碰到就显示"Game Over"并停止所有脚本。
第五步:添加得分系统
没有分数的游戏没有灵魂。我们来加一个计分功能。
创建变量
- 点击"变量"分类
- 点击"建立一个变量"
- 名字输入"分数",选择"适用于所有角色"
在障碍物角色上加分
修改障碍物的代码,加上计分逻辑:
当绿旗被点击
将 [分数] 设为 (0)
重复无限次
将 x 设为 (250)
显示
重复直到 <(x 坐标) < (-250)>
将 x 增加 (-8)
如果 <碰到 [玩家] ?> 那么
说出 [Game Over!] 持续 (2) 秒
停止 [全部]
将 [分数] 增加 (1)
隐藏
等待 (在 1 到 3 之间取随机数) 秒
每成功躲过一个障碍物(障碍物移出屏幕),分数加 1。
第六步:增加难度——越来越快
游戏一直一个速度太无聊了。我们可以让速度随着分数增加而变快。
修改障碍物的移动速度:
把原来的 -8 改成一个计算式:
将 x 增加 ((-8) - ((分数) / (5)))
这意味着分数越高,障碍物移动越快。当分数为 10 时速度变成 -10,分数为 20 时变成 -12。
第七步:美化你的游戏
添加背景
点击右下角"选择一个背景",搜索"City"或"Blue Sky"选一个好看的背景。
添加音效
在跳跃代码里加上:
当按下 [空格] 键
播放声音 [Pop] 等待播完
(然后是跳跃的代码)
在碰撞时加上:
播放声音 [Boing] 等待播完
添加地面
画一条线作为地面,放在 y = -120 的位置,这样看起来更有跑酷的感觉。
完整代码回顾
整个游戏的逻辑其实就是三个模块:
- 玩家控制:跳跃(空格键触发)
- 障碍物系统:自动生成、移动、回收
- 游戏规则:碰撞检测、计分、难度递增
进阶挑战
做完基础版之后,试试这些升级:
- 添加金币:在空中放金币,跳起来收集可以加分
- 双跳功能:允许玩家在空中再跳一次
- 多种障碍物:高的矮的交替出现
- 最高分记录:用一个列表保存历史最高分
学到了什么
做这个游戏的过程中,你其实已经接触了编程的核心概念:
| 概念 | 在游戏中的体现 |
|---|---|
| 变量 | 分数 |
| 循环 | 障碍物不断出现 |
| 条件判断 | 碰撞检测 |
| 事件 | 按空格触发跳跃 |
| 坐标系统 | 角色位置 |
这些概念在 Python、JavaScript 等真正的编程语言里是一样的。等你对 Scratch 熟练了,学其他语言会轻松很多。
做完之后记得点"分享"把你的游戏发出去。你能做出这个游戏,就已经比大多数人厉害了。编程没什么难的,难的是开始的第一步——你已经迈出了。

