跳转到内容

您的第一个交互式游戏

准备在 Scratch 中创建您的第一个游戏吗?我们将构建”接住下落的星星” - 一个有趣、完整的游戏,教授基本的游戏开发概念,同时玩起来很有趣!

接住下落的星星是一个简单但令人上瘾的游戏,其中:

  • ⭐ 星星从天空中掉落
  • 🎯 玩家移动篮子来接住它们
  • 🏆 每接住一颗星星分数增加
  • ⚡ 随着分数增加游戏变得更快
  • 💥 当玩家错过太多星星时游戏结束

在开始编码之前,让我们像专业开发者一样规划游戏:

🎭 角色(精灵)

玩家篮子:左右移动接住星星
下落星星:从顶部掉落,被接住时给分数
游戏控制器:管理分数、生命和游戏规则

🎬 游戏机制

移动:方向键控制篮子
碰撞:星星接触篮子时消失
计分:每接住一颗星星+10分
难度:随着分数增加星星掉落更快

🎨 视觉设计

背景:有星星的夜空
UI元素:分数显示、生命计数器
效果:星星闪烁、声音反馈
完善:流畅的动画和过渡

🎵 音频设计

接住声音:接住星星时的愉快铃声
错过声音:错过时的温和通知
背景音乐:可选的环境太空音乐
游戏结束:独特的游戏结束声音

让我们开始创建游戏环境:

  1. 🎨 选择背景 转到舞台并点击背景图标。选择”太空”或”夜晚”背景,或创建您自己的星空。

  2. 🗑️ 删除默认猫咪 右键点击 Scratch 猫并选择”删除” - 这个游戏不需要它。

  3. 🎯 添加玩家篮子 点击精灵图标并搜索”篮子”或使用绘画编辑器绘制一个简单的矩形篮子。

  4. ⭐ 添加下落星星 从库中添加星星精灵,或绘制您自己的黄色星星形状。

  5. 📺 创建游戏变量 为所有精灵创建这些变量:

    • score(在舞台上可见)
    • lives(在舞台上可见)
    • star_speed(隐藏 - 控制难度)
    • game_running(隐藏 - 跟踪游戏状态)

篮子是我们的玩家角色 - 它需要响应键盘输入:

当绿旗被点击
将 [game_running ▼] 设为 (1)
移到 x:(0) y:(-150)
重复执行
如果 <(game_running) = (1)> 那么
如果 <按下 (左方向键 ▼) 键?> 那么
将 x 坐标增加 (-5)
结束
如果 <按下 (右方向键 ▼) 键?> 那么
将 x 坐标增加 (5)
结束
// 保持篮子在屏幕上
如果 <(x 坐标) < (-220)> 那么
将 x 坐标设为 (-220)
结束
如果 <(x 坐标) > (220)> 那么
将 x 坐标设为 (220)
结束
结束
结束
当绿旗被点击
重复执行
如果 <(game_running) = (1)> 那么
移到 x:(鼠标的 x 坐标) y:(-150)
// 保持在屏幕边界内
如果 <(x 坐标) < (-220)> 那么
将 x 坐标设为 (-220)
结束
如果 <(x 坐标) > (220)> 那么
将 x 坐标设为 (220)
结束
结束
结束

星星需要从顶部掉落,当它们碰到底部时重置:

当绿旗被点击
将 [star_speed ▼] 设为 (2)
隐藏
重复执行
如果 <(game_running) = (1)> 那么
// 在顶部随机位置开始
移到 x:(在 (-220) 到 (220) 间随机选一个数) y:(180)
显示
// 以当前速度下落
重复执行直到 <(y 坐标) < (-180)>
将 y 坐标增加 (0 - (star_speed))
// 检查是否被篮子接住
如果 <碰到 (篮子 ▼)?> 那么
将 [score ▼] 增加 (10)
播放声音 (收集 ▼) 直到播放完毕
// 稍微增加难度
将 [star_speed ▼] 增加 (0.1)
// 重置星星位置
移到 x:(在 (-220) 到 (220) 间随机选一个数) y:(180)
结束
等待 (0.02) 秒
结束
// 星星碰到地面 - 失去一条生命
将 [lives ▼] 增加 (-1)
播放声音 (错过 ▼) 直到播放完毕
// 检查游戏结束
如果 <(lives) ≤ (0)> 那么
将 [game_running ▼] 设为 (0)
隐藏
说 [游戏结束!] (3) 秒
停止 [全部 ▼]
结束
隐藏
等待 (在 (0.5) 到 (2) 间随机选一个数) 秒
结束
结束

创建一个游戏控制器精灵(不可见)来管理整个游戏:

当绿旗被点击
将 [score ▼] 设为 (0)
将 [lives ▼] 设为 (3)
将 [star_speed ▼] 设为 (2)
将 [game_running ▼] 设为 (1)
// 显示说明
说 [使用方向键接住下落的星星!] (3) 秒
说 [不要让它们碰到地面!] (2) 秒
说 [准备好...] (2) 秒
// 开始游戏循环
广播 (开始游戏 ▼)
当绿旗被点击
重复执行
如果 <(game_running) = (1)> 那么
// 根据分数改变难度
如果 <(score) > (50)> 那么
将 [star_speed ▼] 设为 (4)
结束
如果 <(score) > (100)> 那么
将 [star_speed ▼] 设为 (6)
结束
如果 <(score) > (200)> 那么
将 [star_speed ▼] 设为 (8)
结束
结束
等待 (1) 秒
结束

专业游戏因为小细节而感觉很棒:

当接收到 (接住星星 ▼)
重复 (5) 次
将 [颜色 ▼] 特效增加 (25)
将大小增加 (20)
等待 (0.1) 秒
将大小增加 (-20)
等待 (0.1) 秒
结束
清除图形特效
当接收到 (游戏结束 ▼)
重复 (3) 次
将 [亮度 ▼] 特效增加 (50)
等待 (0.2) 秒
将 [亮度 ▼] 特效增加 (-50)
等待 (0.2) 秒
结束
当接收到 (接住星星 ▼)
重复 (2) 次
将大小增加 (10)
等待 (0.1) 秒
将大小增加 (-10)
等待 (0.1) 秒
结束

通过这些增强功能将您的游戏提升到新水平:

添加特殊的金色星星,给予奖励分数或临时能力:

// 金色星星(稀有)
如果 <(在 (1) 到 (20) 间随机选一个数) = (1)> 那么
将 [颜色 ▼] 特效设为 (50) // 使其变为金色
当被接住时:
将 [score ▼] 增加 (50)
将 [star_speed ▼] 设为 (1) // 减慢5秒
等待 (5) 秒
将 [star_speed ▼] 设为 (正常速度)

专业开发者花大量时间测试。以下是如何测试您的游戏:

  1. 🎯 测试基本功能

    • 篮子移动流畅吗?
    • 星星以正确的速度下落吗?
    • 碰撞检测可靠工作吗?
  2. ⚖️ 检查游戏平衡

    • 太容易还是太难?
    • 难度增加适当吗?
    • 控制足够响应吗?
  3. 🐛 查找和修复错误

    • 篮子能离开屏幕吗?
    • 变量在游戏间正确重置吗?
    • 有任何时间问题吗?
  4. ✨ 完善体验

    • 为所有交互添加音效
    • 确保所有动作的视觉反馈
    • 与朋友和家人测试以获得反馈

一旦您的基本游戏运行良好,尝试这些高级添加:

🌟 多种星星类型

不同颜色的星星值不同分数,或以模式移动而不是直接下落的星星。

🎭 角色自定义

让玩家选择不同的篮子设计或根据分数解锁新外观。

🏆 成就系统

达到特定分数、连续接住星星或玩一定时间的奖励。

🌍 多个关卡

随着玩家进步,不同的背景、星星模式或游戏机制。

这个项目教授基本的游戏开发概念:

  • 游戏循环:持续更新一切的重复执行循环
  • 输入处理:响应玩家键盘/鼠标动作
  • 碰撞检测:检测对象何时相互接触
  • 状态管理:使用变量跟踪游戏状态
  • 反馈:每个动作都应该有可见/可听的响应
  • 渐进难度:游戏应该逐渐变难
  • 明确目标:玩家应该始终知道他们在尝试做什么
  • 失败状态:明确的后果帮助玩家学习和改进
  • 响应控制:移动应该感觉即时和准确
  • 视觉清晰度:重要元素应该容易看到
  • 音频提示:声音帮助玩家理解正在发生的事情
  • 恢复:玩家应该能够在游戏结束后轻松重启

准备创建更复杂的游戏?


恭喜!您已经构建了第一个完整的交互式游戏。这只是您在 Vibelf 指导下游戏开发之旅的开始! 🎮✨