Skip to content

9. 用户界面(UI)

系列

您正在阅读Space Shooter Tutorial第9部分

  1. 太空射击游戏,第1部分
  2. 太空射击游戏,第2部分
  3. 太空射击游戏,第3部分
  4. 太空射击游戏,第4部分
  5. 太空射击游戏,第5部分
  6. 太空射击游戏,第6部分
  7. 太空射击游戏,第7部分
  8. 太空射击游戏,第8部分
  9. 太空射击游戏,第9部分
  10. 太空射击游戏,第10部分
  11. 太空射击游戏,第11部分
  12. 太空射击游戏,第12部分
  13. 太空射击游戏,第13部分

提示

在本章中,我们将学习如何向游戏添加UI元素(文本)。

添加UI元素

我们将添加两个文本对象,以指示玩家的健康状况游戏的得分。首先,创建一个新对象,在弹出菜单中选择文本。将对象重命名为**“得分”,在文本字段中输入“得分:0”。然后,从资产文件夹中添加一个名为“Kenney Future Narrow.tff”**的自定义字体。

我们将使用黄色作为得分文本的颜色,但您可以选择任何颜色。

现在,我们将重复相同的过程,添加一个文本以显示玩家的健康状况。确保对象的名称为**“健康”**,并且字体与上一步相同。您的设置应如下所示:

最后,您可以在其他对象下看到您的两个文本对象。

您可以将文本对象拖放到场景中。

我们将得分放在左上角,而健康放在左下角的位置。

定位文本对象

我们将使用一个新图层来定位这些对象,以便它们始终可见且保持在屏幕上的同一位置。创建一个名为UI的新图层,并将此图层放在列表的顶部。

提示

如果您忘记了如何添加图层,可以查看这个章节

然后,我们应该选择场景上的文本对象,并从右上角的图标打开属性面板。更改其图层为UI。通过将这些对象放在UI图层上,它们将始终显示在其他游戏对象(位于基本图层上)的顶部,并且即使将基本图层的相机移动时,它们也会始终可见在屏幕上。

更新文本对象的值

我们准备打开**“事件”页面。我们将创建一个名为“得分”的新场景变量,初始值为0**。然后,添加一个随时间改变分数的动作。我们将使用TimeDelta函数来根据时间改变分数。

警告

确保您选择了**+**作为修改符号。

玩家消灭敌人时,也可以增加玩家的得分。因此,我们将在敌人死亡条件下添加一个增加分数100的动作。

然后,我们准备更新文本对象的得分。添加一个新动作,选择得分文本对象。然后选择修改文本,并键入**“得分”+ VariableString(Score)**。您应该看到这些动作:

警告

确保修改符号设置为s=

我们将添加最后一个动作来修改健康文本。在这里,我们将利用GDevelop的自动补全功能:选择健康文本,选择修改文本。将值填充为**“健康:”+ LargeNumberToString(Player.Health::Health())**。

提示

您可以在编写动作时使用自动补全功能。

最后,您的动作应如下所示:

测试

我们现在可以测试我们的文本对象。您可以看到健康和得分的变化。接下来的步骤是在Space Shooter游戏中添加音效和音乐。