📜  在Godot中设计EnergyBar(1)

📅  最后修改于: 2023-12-03 15:23:23.403000             🧑  作者: Mango

在 Godot 中设计 EnergyBar

EnergyBar 是指显示角色当前能力值的一个 UI 元素。在本文中,我们将介绍如何使用 Godot 引擎来设计一个 EnergyBar。

步骤 1:创建一个新项目

首先,我们需要在 Godot 引擎中创建一个新项目。在主菜单中,选择 File -> New Project,然后按照提示填写项目名称和保存位置。

步骤 2:创建 EnergyBar 节点

在 Scene Tree 中,右键单击节点并选择 "Add Child Node",然后从弹出菜单中选择 Control。这将创建一个新的 Control 节点。将它重命名为 EnergyBar。

EnergyBar control node

步骤 3:自定义 EnergyBar

在 Inspector 中,选择 EnergyBar,并进行以下更改:

  • 在 Control 菜单下,将 custom 扩展到开。这将启用自定义 EnergyBar 此空间的绘制。

  • 然后选择 “Layout” 选项卡,将“Width”和“Height”设置为适当的值(例如,64x10)。

  • 然后在“Style”选项卡中,将“Background Color”设置为您选择的背景颜色,将“Border Color”设置为透明,将“Fill Mode”设置为“Scale”,将“Fill Origin”设置为“Begin”,将“Fill Amount”设置为“ 1”(默认值)。

  • 最后,在“Custom Constants”区域中,添加以下变量: var energy: float = 1.0 

  • 现在,我们的 EnergyBar 节点已经准备就绪了。

步骤 4:设计 EnergyBar 样式

我们可以使用 Godot 引擎的可视工具来设计我们的 EnergyBar 样式。在“Layout”选项卡下,单击“Edit Custom Styles”按钮以打开样式编辑器。

在样式编辑器中,我们需要定义 EnergyBar 的绘制方式。我们将使用矩形节点来完成这项工作。在主菜单中,选择“Node -> 2D -> Rect”以创建一个新矩形节点。

在 Inspector 窗口中,对矩形节点进行以下设置:

  • 将 Size 设置为与 EnergyBar 等宽,但高度可以自由选择。

  • 在“Node”选项卡下,将“Anchor”设置为全局,以使矩形节点填充整个 EnergyBar。

  • 在“Material”选项卡下,将“Color”设置为您选择的能量条颜色。

EnergyBar style editor

现在,我们完成了 EnergyBar 的样式设计。

步骤 5:独立 EnergyBar 节点

我们需要创建一个脚本来维护 EnergyBar 节点。在“FileSystem”选项卡中,右键单击“Scripts”文件夹,选择“New Script”以创建一个新脚本。

在脚本编辑器中,输入以下代码:

extends Control

var energy: float = 1.0

func _draw():
    var rect = Rect2(Vector2(), size)
    rect.size.y *= energy
    draw_rect(rect, color)

func set_energy(value):
    energy = clamp(value, 0, 1)
    update()

我们定义了一个名为 energy 的浮点型变量,并在 _draw() 函数中使用 draw_rect() 函数来绘制能量条矩形。

最后,我们定义了一个名为 set_energy(value) 的函数,它用来更新 energy 变量的值,并通过 update() 函数调用 _draw() 函数以重新呈现节点。

步骤 6:使用 EnergyBar 节点

我们需要创建一个新节点来使用 EnergyBar 节点。在 Scene Tree 中,右键单击“EnergyBar”节点并选择“Duplicate”,然后将其重命名为“PlayerEnergyBar”。

PlayerEnergyBar node

现在在“PlayerEnergyBar”节点中,右键单击选择“Attach Script”并将 EnergyBar 脚本附加到该节点。

在“PlayerEnergyBar”节点上,我们可以使用 set_energy() 函数来更改能量条的值。例如,将“PlayerEnergyBar”节点的能量值设置为 0.5:

$PlayerEnergyBar.set_energy(0.5)

到此,我们可以成功设计一个简单的能量条 EnergyBar 并实现其功能。

以上是本人对于在 Godot 中设计 EnergyBar 的基本介绍,如代码有误请指正。