一、备考引言:三大赛事图形化考点高度重合
备考季正酣------蓝桥杯青少组省考(STEMA) 11 月场报名 11 月 9 日 16:00 截止 、11 月 22 日开考 (Scratch 组 10:00--11:30,90 分钟上机),准考证 11 月 18 日 14:00 起下载、成绩 12 月 4 日公布;中国电子学会 12 月图形化考级 报名到 12 月 2 日 16:00 才关门,全国测试 12 月 10 日、统考 12 月 13 日(一级 14:00--15:00、二/三/四级 8:30--10:00);全国青少年信息素养大赛 2026---2027 赛季 也进入报名与初赛规划窗口,复赛 2027 年 5--7 月、总决赛 7--8 月,5 大主题赛项均覆盖图形化。
这三大标志性赛事的图形化(Scratch)考点高度重合:变量、列表、循环、条件、自制积木、广播 六件套几乎每场都要考。今天用一个原创项目「校园极速跑酷闯关」,把这六件套一次性串起来,一篇顶三篇备考。
今天距蓝桥杯 11 月省考报名截止只剩 4 天,想冲省考/国考、同时备考电子学会图形化考级与信息素养大赛的同学,这篇可以直接当练手题。

二、题目与项目目标
背景设定(原创,不照搬真实赛题):操场赛道上,小猫角色自动向前奔跑,前方不断出现障碍物------低栏、高栏、掠过的飞鸟。玩家按空格键(或点击舞台)让角色起跳躲避;每安全越过一个障碍得 1 分,撞到障碍损失 1 条命,三条命耗尽游戏结束;速度随分数递增,挑战极限距离。
项目目标(也是这类题的采分点) :
-
玩法完整:奔跑、起跳、躲避、计分、扣命、结束、重开,一个不少;
-
交互流畅:跳跃响应及时,落地后才能再次起跳,杜绝"空中乱跳";
-
结构清晰:变量命名规范,功能用自制积木封装,流程用广播解耦;
-
可扩展:速度、障碍密度、障碍种类参数化,便于继续加玩法。
三、核心考点(六件套全包)
| 考点 | 在本项目中的体现 |
|---|---|
| 变量 | score 分数、speed 速度、lives 生命、state 游戏状态(0 等待/1 进行/2 结束)、jumping 是否在跳、jump_v 跳跃速度、ground_y 地面高度、best 最高分、spawn_gap 障碍间隔帧数 |
| 列表 | obstacles 记录在场障碍的"位置下标 + 类型"(也可完全交给克隆体私有变量,文末对比两种方案) |
| 循环 | 跑者主循环"重复执行"逐帧推进(重力→移动→碰撞);障碍克隆体循环左移并越界删除 |
| 条件 | 是否跳跃中、是否落地、是否撞障碍、障碍是否越过跑者、生命是否耗尽、速度是否达标加速 |
| 自制积木 | 生成障碍、跳跃、碰撞检测、绘制场景、重置一局 封装复用,主脚本只做调度 |
| 广播 | 按钮只发 开始游戏,跑者监听后初始化;得分、撞击、游戏结束、重置 解耦逻辑与表现 |
四、解法拆解(分步上手)
4.1 用"状态机"管住流程
新建变量 state,取值 0(等待)/ 1(进行)/ 2(结束)。绿旗点击后 state=0,按钮只广播 开始游戏;跑者收到广播后把所有变量归零、state=1。任何"误点按钮"只要 state≠0 就忽略------这能挡掉 80% 的现场翻车。
4.2 重力与跳跃(最容易写错的一段物理)
核心思路:每帧先改速度,再改坐标,顺序不可反(和"飞鸟穿越"同源)。
- 变量
jump_v(跳跃速度,向上为负)、gravity(重力加速度,如 0.6); - 主循环里:
jump_v = jump_v + gravity;y = y + jump_v; - 若
y <= ground_y:y = ground_y、jump_v = 0、jumping = false(落地); - 空格按下 且
jumping = false时:jump_v = -12、jumping = true(起跳)。
很多同学把"改速度"和"改坐标"顺序写反,导致落地后还会继续下沉一格,跳跃手感发飘。
4.3 障碍用克隆体 + 私有变量
生成障碍自制积木:每隔spawn_gap帧建一个克隆体,给它私有变量my_type(0 低栏/1 高栏/2 飞鸟),决定高度与碰撞框;同时scored = false(防止重复计分)。- 障碍克隆体脚本:
重复执行:x = x - speed;若x < -260则删除此克隆体。
4.4 碰撞检测与计分(关键在"谁去加分")
- 撞到 :跑者在主循环里
如果 碰到 [障碍] 且 无敌计时=0→lives = lives - 1、广播 撞击、给 30 帧无敌闪烁,若lives <= 0则state=2、广播 游戏结束。 - 计分 :把"加分"放在障碍克隆体 脚本里------当
x < 跑者x且scored = false时,广播 得分、score = score + 1、scored = true。这样"安全越过"才加分,且每个障碍只计一次,不会重复刷分。
4.5 速度与难度曲线
speed 初始 4,每得 5 分 speed = speed + 0.3(上限 12);spawn_gap 随 speed 缩小,障碍越来越密------典型的"分数越高越刺激"。
4.6 广播彻底解耦
按钮只负责广播,跑者负责算逻辑,播报员(另一角色)只"听广播说话"。三者互不耦合,调试时改表现不影响逻辑,是蓝桥杯与信息素养上机题的高分写法。
五、进阶玩法与探究
- 障碍种类升级 :低栏(跳一次)、高栏(需更大起跳初速或二段跳)、飞鸟(需二段跳或下滑铲)。
my_type决定碰撞框高度,逻辑零改动即可加新障碍。 - 二段跳 / 滑铲下蹲 :加变量
jump_count,空中可再跳一次;按下键y压扁实现滑铲躲飞鸟。 - 金币收集系统 :用
coins列表记录金币坐标,吃到 +2 分,丰富计分维度。 - 难度曲线探究 :画出
speed与spawn_gap的函数关系,找"可玩---变态"的临界点,这正是信息素养大赛算法应用主题赛爱考的"参数调优"思想。 - 考级提分点 :为什么用"碰到角色"而非"颜色碰撞"(颜色侦测在大画面里容易误判);克隆体私有变量如何让几十个障碍互不干扰;
state状态机如何挡掉误触。
Python 同构对照(核心物理与计分)
下面用纯逻辑还原上面的物理与计分,不依赖图形库也能跑,帮助理解"先改速度再改坐标"和"谁去加分":
python
GRAVITY = 0.6
JUMP_V = -12
GROUND_Y = -120
class Runner:
def __init__(self):
self.x = -160
self.y = GROUND_Y
self.jump_v = 0
self.jumping = False
self.lives = 3
self.score = 0
self.invuln = 0 # 受击后无敌帧
def step(self, jump_pressed):
# 先改速度,再改坐标(顺序不可反)
if jump_pressed and not self.jumping:
self.jump_v = JUMP_V
self.jumping = True
self.jump_v += GRAVITY
self.y += self.jump_v
if self.y <= GROUND_Y:
self.y = GROUND_Y
self.jump_v = 0
self.jumping = False
if self.invuln > 0:
self.invuln -= 1
class Obstacle:
def __init__(self, x, otype):
self.x = x
self.otype = otype # 0 低栏 1 高栏 2 飞鸟
self.scored = False
self.alive = True
def step(self, speed):
self.x -= speed
if self.x < -260:
self.alive = False
def hit(runner, obs):
# 半宽半高矩形近似,不用颜色侦测
half_w, half_h = 18, 26
if abs(runner.x - obs.x) < half_w and runner.y < (GROUND_Y + 60):
return True
return False
# 计分放在障碍侧:安全越过才 +1,且只计一次
def try_score(runner, obs):
if obs.x < runner.x and not obs.scored:
runner.score += 1
obs.scored = True
六、小结与互动
「校园极速跑酷闯关」把图形化六件套落到了实处:变量/列表 管状态与障碍、循环 驱动逐帧物理、条件 判跳跃/碰撞/加速、自制积木 封装生成与跳跃、广播解耦逻辑与表现。练熟这一题,蓝桥杯青少组省考、电子学会图形化考级、信息素养大赛的图形化操作题基本都能套同一条骨架。
你最想给跑酷加哪种障碍或机制?是二段跳、金币、还是 Boss 关?欢迎在评论区留言,下一篇我们挑一个做深度拆解。也欢迎关注,三大赛事备考干货持续更新。
📚 免费少儿编程资料(夸克网盘领取)
以下资料来自夸克网盘分享,点击链接可直接保存;若需在 App 内打开,也可复制下方明文链接:
- 全国青少年信息素养大赛复赛集训题目Python&C++.docx
https://pan.quark.cn/s/93995d3cb150 - 2024信息素养-智能算法应用挑战赛-复赛初中组题目7月7日.pdf
https://pan.quark.cn/s/da97b5dbf75d - Python背记手册.pdf
https://pan.quark.cn/s/7568ae9ca92b - Python课程
https://pan.quark.cn/s/a94bf02d00c6 - 2024信息素养大赛图形化复赛集训题答案3-9
https://pan.quark.cn/s/6ccab7ec3cbc - 2025年03月份电子学会考级真题
https://pan.quark.cn/s/4403c4228912 - 2025全国青少年信息素养大赛赛项说明
https://pan.quark.cn/s/d9d0df4a9f29 - 青少儿信息素养大赛编程资料
https://pan.quark.cn/s/4ab6bd83be8a
资料持续更新,关注获取最新分享。