## 👋 项目介绍
欢迎来到《海底寻鱼大冒险》的世界!在这个项目中,我们将一起制作一个有趣的点击游戏:屏幕上会出现各种各样的海洋生物,比如小丑鱼、鲨鱼、水母……你要做的就是快速点击它们来获得分数!每点击一条鱼就能加10分,累计到50分就会播放胜利音效并结束游戏。而且,随着分数的提高,背景音乐会变得越来越“高音”,听起来是不是很酷?
这个游戏不仅好玩,还能让你学到很多Scratch编程的核心知识,比如**克隆体的使用**、**变量控制**、**音效调节**等等。让我们一起潜入深海,开启这段有趣的编程旅程吧!
## 🎯 你将学会
* 如何使用克隆体功能动态生成多个角色副本
* 怎样通过变量记录和更新游戏得分
* 掌握音效与变量联动的设计方法
* 实现角色点击反馈与删除克隆体的机制
---
## 🛠️ 开始制作
### 第一步:创建新项目并设置舞台
我们要做的第一件事就是准备好我们的游戏舞台。想象一下,整个游戏就像一场海底探险,所以我们要把舞台打扮得像一个美丽的海底世界。
**操作步骤:**
1. 打开Scratch编辑器,创建一个新项目。
2. 删除默认的白色背景(右键点击背景 → 删除)。
3. 点击“背景库”按钮,选择“Underwater 1”作为我们的海底背景。

---
### 第二步:添加角色 Sprite1 及其资源
接下来,我们要为主角——也就是那些游来游去的小鱼们——添加造型和声音资源。我们将为同一个角色“Sprite1”准备多种不同的鱼类外观,让它看起来更丰富多样。
**操作步骤:**
1. 点击“角色库”按钮,选择“Sprite1”作为初始角色。
2. 依次为它添加以下造型文件:
- Fish-a
- Fish-b
- Fish-c
- Fish-d
- Jellyfish-a
- Jellyfish-c
- Pufferfish-a
- Shark-a
- Shark-b
3. 再进入“声音”标签页,导入三个声音:
- Chill(用于背景音乐)
- Pop(点击鱼时播放)
- Tada(胜利时播放)

---
### 第三步:创建全局变量 Score
为了让玩家知道自己得了多少分,我们需要建立一个叫作 `score` 的变量,并把它设成全局可见的状态,这样在舞台上也能看到当前得分。
**操作步骤:**
1. 在代码区点击左上角的【变量】类别。
2. 点击“新建变量”按钮,命名为 `score`。
3. 勾选“对所有角色显示变量”。

---
### 第四步:编写 Sprite1 初始化脚本
每次重新开始游戏的时候,我们都希望一切归零。因此我们要写一段脚本,在绿旗被点击后播放音乐并清空之前的得分。
**代码实现:**
```scratch
when flag clicked
set [score v] to [0]
forever
play sound [Chill v] until done
end
```
**逻辑解析:**
这个脚本会在程序启动时把分数设为0,然后无限循环播放“Chill.mp3”这首舒缓的背景音乐。只要音乐播完就重新开始,营造轻松的游戏氛围。
---
### 第五步:设置音效随分数变化
为了让游戏更有动感,我们可以让背景音乐的音调随着得分增加而升高。这需要使用到“声音特效”的控制模块。
**代码实现:**
```scratch
when flag clicked
forever
set [PITCH v] effect to (score)
end
```
**逻辑解析:**
这段代码会让`PITCH`(音调)的效果值等于当前的`score`数值。也就是说,当你不断点击鱼、分数上涨时,背景音乐也会逐渐变成更高的音调,带来一种奇妙的听觉体验!
---
### 第六步:游戏结束判断及胜利音效
一旦得分达到50分,我们就认为玩家完成了挑战,这时候应该停止其他脚本运行,并播放庆祝胜利的声音。
**代码实现:**
```scratch
when flag clicked
set [score v] to [0]
wait until <(score) = [50]>
stop [other scripts in sprite v]
clear sound effects
play sound [Tada v] until done
```
**逻辑解析:**
这段脚本首先重置分数,接着一直等待直到分数达到50为止。一旦满足条件,它就会暂停当前角色的所有其它脚本,并清除之前设置的音效,最后播放一声响亮的“Tada!”表示恭喜通关!
---
### 第七步:克隆体显示控制
为了让鱼儿真正出现在舞台上而不是一开始就藏起来,我们需要在克隆体刚刚诞生的那一瞬间让它显现出来。
**代码实现:**
```scratch
when I start as a clone
show
```
**逻辑解析:**
每当一个新的克隆体被创建时,这段代码会立刻让它从隐藏状态变为可见状态,从而实现在画面上“突然出现”的效果。
---
### 第八步:随机生成鱼群
现在我们已经可以让一只鱼出现了,但如果想做出一群鱼的感觉呢?这就需要用到循环和克隆技术了。
**代码实现:**
```scratch
when flag clicked
hide
repeat (5)
go to (random position v)
next costume
create clone of [_myself_ v]
end
```
**逻辑解析:**
这段脚本在绿旗点击后会先把原始角色隐藏掉,再重复5次下面的动作:跳转到舞台上的任意位置、切换下一个造型、然后复制自己一次。这样就能一次性创造出5个不同种类、分布在不同地点的鱼啦!
---
### 第九步:点击鱼类加分并移除
最后也是最关键的一步:让用户可以通过鼠标点击鱼来获取分数,并且让被点过的鱼消失不见。
**代码实现:**
```scratch
when this sprite clicked
start sound [Pop v]
change [score v] by (10)
delete this clone
```
**逻辑解析:**
当任何一个鱼型克隆体被点击时,都会触发这个脚本。它会播放“Pop”的点击音效、将总分增加10分,并立即删除该克隆体本身,防止重复计分。
---
### 第十步:运行演示并保存截图
终于到了见证奇迹的时刻!点击绿色旗帜,看看你的海底世界是否活跃起来了?记得截一张图留念哦~
**操作步骤:**
1. 点击上方的绿色旗帜运行项目。
2. 查看舞台表现,确认鱼群正常生成、点击有效、得分增长。
3. 截图保存精彩画面。

---
## 🚀 挑战一下
你有没有想过怎么让难度更高一些?试试这些升级方向:
- 让鱼的数量随着得分提升而增多;
- 给某些特殊鱼类设定负分(比如不小心点了鲨鱼就要扣分);
- 加入倒计时模式,限定时间内尽可能多地抓鱼;
发挥你的创意,把这个小游戏做得更加精彩吧!
---
## 🎉 结语
太棒啦!你已经成功完成了一个完整又有趣的Scratch小游戏!从角色设计、动画呈现,再到交互逻辑和音效搭配,每一个环节都是你自己亲手打造出来的作品。希望你在编程的过程中感受到了创造的乐趣,也期待你能继续探索更多精彩的Scratch项目!
如果你喜欢这篇文章,请分享给你身边的小伙伴,一起加入这场有趣的编程之旅吧!🌊🐟🎉