🎭 角色(精灵)
玩家篮子:左右移动接住星星
下落星星:从顶部掉落,被接住时给分数
游戏控制器:管理分数、生命和游戏规则
准备在 Scratch 中创建您的第一个游戏吗?我们将构建”接住下落的星星” - 一个有趣、完整的游戏,教授基本的游戏开发概念,同时玩起来很有趣!
接住下落的星星是一个简单但令人上瘾的游戏,其中:
在开始编码之前,让我们像专业开发者一样规划游戏:
🎭 角色(精灵)
玩家篮子:左右移动接住星星
下落星星:从顶部掉落,被接住时给分数
游戏控制器:管理分数、生命和游戏规则
🎬 游戏机制
移动:方向键控制篮子
碰撞:星星接触篮子时消失
计分:每接住一颗星星+10分
难度:随着分数增加星星掉落更快
🎨 视觉设计
背景:有星星的夜空
UI元素:分数显示、生命计数器
效果:星星闪烁、声音反馈
完善:流畅的动画和过渡
🎵 音频设计
接住声音:接住星星时的愉快铃声
错过声音:错过时的温和通知
背景音乐:可选的环境太空音乐
游戏结束:独特的游戏结束声音
让我们开始创建游戏环境:
🎨 选择背景 转到舞台并点击背景图标。选择”太空”或”夜晚”背景,或创建您自己的星空。
🗑️ 删除默认猫咪 右键点击 Scratch 猫并选择”删除” - 这个游戏不需要它。
🎯 添加玩家篮子 点击精灵图标并搜索”篮子”或使用绘画编辑器绘制一个简单的矩形篮子。
⭐ 添加下落星星 从库中添加星星精灵,或绘制您自己的黄色星星形状。
📺 创建游戏变量 为所有精灵创建这些变量:
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 ▼] 设为 (正常速度)
创建轨迹和爆炸效果:
// 星星轨迹效果当绿旗被点击重复执行 建立 (自己 ▼) 的克隆体 等待 (0.1) 秒
当作为克隆体启动时将 [虚像 ▼] 特效设为 (80)重复 (10) 次 将 [虚像 ▼] 特效增加 (2) 等待 (0.1) 秒结束删除此克隆体
记住游戏间的最佳分数:
当绿旗被点击如果 <[最高分 ▼] 列表包含 (任何项目)?> 那么 // 加载现有最高分否则 添加 (0) 到 [最高分 ▼]结束
当游戏结束如果 <(score) > ([最高分 ▼] 的第 (1) 项)> 那么 替换 [最高分 ▼] 的第 (1) 项为 (score) 说 [新的最高分!] (3) 秒结束
专业开发者花大量时间测试。以下是如何测试您的游戏:
🎯 测试基本功能
⚖️ 检查游戏平衡
🐛 查找和修复错误
✨ 完善体验
一旦您的基本游戏运行良好,尝试这些高级添加:
🌟 多种星星类型
不同颜色的星星值不同分数,或以模式移动而不是直接下落的星星。
🎭 角色自定义
让玩家选择不同的篮子设计或根据分数解锁新外观。
🏆 成就系统
达到特定分数、连续接住星星或玩一定时间的奖励。
🌍 多个关卡
随着玩家进步,不同的背景、星星模式或游戏机制。
这个项目教授基本的游戏开发概念:
准备创建更复杂的游戏?
恭喜!您已经构建了第一个完整的交互式游戏。这只是您在 Vibelf 指导下游戏开发之旅的开始! 🎮✨