用图形化编程做一个“少年探险闯关”小游戏:方向键控制、碰撞检测与多关卡串起完整项目

备赛方向:全国青少年红色文化传承与实践创新大赛(Scratch 科目,教育部白名单)。本文原创一个“探险闯关”小游戏项目,串起方向键控制、碰撞检测、变量计分、列表存关卡、广播切换与自制积木六大考点,适合作为图形化赛项作品雏形。

一、项目目标

我们要做一个可以在电脑上用键盘玩的闯关小游戏:

  • 舞台是一张“探险地图”,上面散布着若干个打卡点(收集目标)和若干障碍物(陷阱)。
  • 玩家用方向键(↑↓←→)控制小探险家在地图里移动。
  • 走到打卡点上就收集成功,得分 +10;碰到障碍物扣 5 分并把主角弹回起点。
  • 当本关所有打卡点都收集完,再走到终点旗帜处,就广播“过关”,自动进入下一关。
  • 三关全过,游戏胜利;分数低于 0 则游戏失败。

这个项目把“操控 + 规则 + 进度”三类逻辑都练到了,是图形化赛项里非常能打的一类作品。

探险地图示意

二、核心考点

考点在项目中怎么用
方向键 / 事件“当按下↑键”等四类事件,驱动主角移动
碰撞检测“碰到颜色 / 碰到角色”判断墙壁、陷阱、打卡点
变量得分关卡剩余打卡点 三个变量贯穿全程
列表用列表按顺序存放三关的“打卡点数量”,实现多关卡配置
广播初始化过关失败 三类广播协调主角与背景
自制积木封装 初始化关卡(关号)重置主角,避免重复堆积木

三、文字流程图

绿旗被点击
  └─ 广播 [初始化]
        ├─ 主角:移到起点,得分=0,关卡=1
        └─ 背景:读取列表第1项,布置本关打卡点
循环检测(主角脚本,重复执行):
  ├─ 若 按下 ↑ 键 → y 增加 5
  ├─ 若 按下 ↓ 键 → y 减少 5
  ├─ 若 按下 ← 键 → x 减少 5
  ├─ 若 按下 → 键 → x 增加 5
  ├─ 若 碰到 [墙壁颜色] → 退回上一位置(碰壁不动)
  ├─ 若 碰到 [打卡点] → 隐藏该打卡点,剩余打卡点-1,得分+10
  ├─ 若 碰到 [陷阱]   → 得分-5,广播[重置主角]
  └─ 若 剩余打卡点=0 且 碰到 [终点旗帜] → 广播[过关]
收到 [过关]:
  ├─ 关卡 +1
  ├─ 若 关卡 > 3 → 显示“通关啦!”
  └─ 否则 → 广播[初始化](进下一关)
收到 [失败](得分<0):显示“再试一次”

四、积木拆解(分模块)

模块 A:主角移动 + 碰壁检测

当 绿旗 被点击
广播 [初始化 v]
重复执行
  如果 <按键 [向上箭头 v] 按下?> 那么
    将 y 坐标 增加 (5)
  结束
  如果 <按键 [向下箭头 v] 按下?> 那么
    将 y 坐标 增加 (-5)
  结束
  如果 <按键 [向左箭头 v] 按下?> 那么
    将 x 坐标 增加 (-5)
  结束
  如果 <按键 [向右箭头 v] 按下?> 那么
    将 x 坐标 增加 (5)
  结束
  如果 <碰到颜色 [#5A3A22] ?> 那么   // 墙壁棕色
    将 x 坐标 增加 ((0) - (本步x))
    将 y 坐标 增加 ((0) - (本步y))
  结束
end

小技巧:移动前先把“本步位移”存进变量,碰到墙壁就反向抵消,主角就“卡”在墙外,不会穿墙。

模块 B:收集打卡点 + 计分

当 绿旗 被点击
重复执行
  如果 <碰到 [打卡点 v] ?> 那么
    隐藏
    将 [剩余打卡点 v] 改变 (-1)
    将 [得分 v] 改变 (10)
    播放声音 [叮 v]
  结束
end

每个打卡点角色都要有这一段,靠“碰到就隐藏 + 计数 -1”实现收集。

模块 C:过关与多关卡(自制积木)

定义 初始化关卡 (关号)
  将 [关卡 v] 设为 (关号)
  将 [剩余打卡点 v] 设为 (列表的第 (关号) 项)
  显示所有打卡点
  广播 [布置地图 v]

当 接收到 [过关 v]
  将 [关卡 v] 改变 (1)
  如果 <(关卡) > (3)> 那么
    说 [通关啦!] (2) 秒
  否则
    初始化关卡 (关卡)
  结束

列表 每关打卡点数 = [3, 4, 5],代表三关分别有 3、4、5 个打卡点,改一个数就能调难度。

五、运行效果

  • 第一关 3 个打卡点,熟悉方向键;第二关 4 个,加入更多陷阱;第三关 5 个,路径更绕。
  • 主角走到打卡点会“叮”一声并消失,分数实时上涨。
  • 三关全清后屏幕弹出“通关啦!”,整个流程闭环。
  • 若连续踩陷阱把分数扣到负数,立刻弹出“再试一次”,引导玩家重来。

六、进阶挑战

  1. 加计时器:用 计时器 变量记录通关用时,分数里扣时间分,做出“竞速榜”。
  2. 随机地图:把打卡点坐标放进列表,每关用“在 1 到 N 间取随机数”重新布置,每次玩都不一样。
  3. 敌人巡逻:加一个左右来回移动的角色,碰到就扣分,引入“克隆体 + 移动”让游戏更有挑战。

七、小结与互动

这个项目用方向键控制 + 碰撞检测撑起“玩”的部分,用变量 + 列表撑起“规则与进度”,再用广播 + 自制积木把各角色协调起来——六个考点一个不少,却比单纯做“数据展示类”作品更有看点。

你在图形化比赛里还做过什么好玩的闯关游戏?卡在“碰壁穿墙”或“多关卡切换”哪一步?评论区聊聊,下篇我们拆解一个“自动寻路”的小项目。


📚 免费少儿编程资料(夸克网盘领取)

以下资料来自夸克网盘分享,点击链接可直接保存;若需在 App 内打开,也可复制下方明文链接:

  1. 全国青少年信息素养大赛复赛集训题目Python&C++.docx
    https://pan.quark.cn/s/93995d3cb150
  2. 2024信息素养-智能算法应用挑战赛-复赛初中组题目7月7日.pdf
    https://pan.quark.cn/s/da97b5dbf75d
  3. Python背记手册.pdf
    https://pan.quark.cn/s/7568ae9ca92b
  4. Python课程
    https://pan.quark.cn/s/a94bf02d00c6
  5. 2024信息素养大赛图形化复赛集训题答案3-9
    https://pan.quark.cn/s/6ccab7ec3cbc
  6. 2025年03月份电子学会考级真题
    https://pan.quark.cn/s/4403c4228912
  7. 2025全国青少年信息素养大赛赛项说明
    https://pan.quark.cn/s/d9d0df4a9f29
  8. 青少儿信息素养大赛编程资料
    https://pan.quark.cn/s/4ab6bd83be8a

资料持续更新,关注获取最新分享。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

青少儿编程课堂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值