在这篇文章中,孩子将学习如何制作一个比赛游戏。玩家使用鼠标将船开到岛屿而不会碰到障碍物。
## 项目效果图
孩子制作完成的项目将如下图所示:

下面我们来介绍如何完成这个项目。
### 1、开始
为了方便学习,您可以从[划船比赛资源](https://www.codxz.com/media/project/BoatRaceResources.sb3)下载本项目的资源。
该项目包括一个船角色和一个赛场背景:
- 船角色必须避免的木头
- 一个船必须到达的荒岛

### 2、控制赛艇
在这个项目中,玩家将使用鼠标控制船,将代码添加到船角色中,使其从左下角开始向上,然后跟随鼠标指针。代码如下:

此时,单击绿色旗帜并移动鼠标来测试代码,检查船角色是否向鼠标指针移动?

问题来了,当船到达鼠标指针时会发生什么?
要阻止这种情况发生,我们需要在船的代码中添加一个**如果**块,这样只有当它与鼠标指针相距超过5个像素时船才会移动。

### 3、检测碰撞
现在船可以简单地穿过木栅栏!我们需要解决这个问题。
- 船角色需要两种造型:一种是普通的造型,一种是船撞毁的时候。复制船角色的造型,并命名一个造型’正常’和另一个’撞毁’。
- 点击“撞毁”造型,然后使用 **选择** 工具来选择造型的碎片,然后移动并旋转它们,使船看起来像是撞成碎片。

- 现在将代码添加到船角色上,以便在碰到任何棕色木质障碍物时撞毁并破碎。代码应该是这样的:

- 我们还应该添加代码以确保船角色始终开始看起来“正常”。
- 再次测试我们的代码。如果现在尝试通过一个木制障碍,船应该撞毁,然后回到它的起始位置。

### 4、可以判断是否胜利了
如果我们的船达到黄色海岛,则获得了胜利,此时可以使用“如果”代码块来判断。
当船到达岛屿时,应该说’耶!’,然后游戏应该结束了。

注意,这个代码要放在在船的**重复执行**代码块中。
### 5、挑战:添加音效
我们可以添加当船撞毁或到达岛屿时发出声音的效果吗?
我们甚至可以添加背景音乐!
1. 选择我们想要添加声音的角色。

2. 选择声音选项卡,并点击选择一个声音按钮:

4. 声音按类别组织,我们可以将鼠标悬停在图标上以听到声音, 选择一个合适的声音。

5. 我们应该能看到我们的角色已经有了我们给他选择的声音。

### 6、添加计时器
现在,我们将为游戏添加计时器,以便玩家必须尽快到达岛屿。
在舞台上添加一个名为**时间**的新变量。


现在将代码块添加到舞台上,以便计时器计时,直到船到达岛屿。

测试我们的游戏,看看能多快把艇送到岛上!

### 7、添加障碍物和助推器
现在游戏还是太简单了,我们可以添加一些东西使之更有趣。
##### 首先,我们可以添加一些助推器来给船加速。
- 通过添加一些白色助推器箭头来编辑我们的舞台背景。

- 现在添加更多的代码块,在船的**重复执行**循环中,使船角色触碰到白色箭头时多移动3步。

- 现在可以测试下游戏,新的助推器是否让船加速了。
##### 接下来我们添加一个旋转门,我们的船要避开旋转门
- 添加一个看起来像这样的新角色,并将其命名为“门”:
- 确保门角色的颜色与木质障碍物的颜色相同。

- 确保门角色的中心位于中间。

- 添加代码到我们的门角色,使其永远缓慢旋转。

- 再次测试我们的游戏。现在应该有一个旋转门,我们需要控制船通过它。

### 8、挑战:完善你的游戏
- 我们能为游戏添加更多障碍吗?例如,我们可以在背景中添加绿色粘液并更改代码,以便当玩家触碰到它们时,粘液会使船慢下来。
- 我们可以添加移动障碍物,例如树桩或鲨鱼!

- 我们能将这个游戏变成2人竞赛吗?第2个玩家需要用键盘的上箭头移动赛艇用左右箭头转向。
- 我们可以通过添加不同的背景来创建更多关卡,然后可以允许玩家在关卡之间进行选择吗?
让孩子的大脑动起来吧,完成这些挑战并学到更多的知识!