教程:脚本课程#4 尝试制作UI。

本课程将学习在 ACTION GAME MAKER 中编写基本脚本的方法。
第四讲将制作 HP 条的 UI。

课程开始前的准备工作

请继续使用第一讲至第三讲中使用的项目。
现在请打开项目并做好准备工作。

1 个赞

步骤1:调整玩家。

  1. 打开 Object_Sampleplayer。
  2. 打开 BaseSettings,将 HP 和 Max HP 设置为 20,并将闪烁间隔(BlinkDuration)设置为 0.1 秒。这样在无敌时间内角色会闪烁,更加直观。
  3. 接下来,添加一个新的节点 TakenDamageSettings。
  4. TakenDamageSettings 可以进行多种设置,但本次仅用于添加受伤音效。创建一个新的伤害设置,将 OtherSettings 中的“播放声音”选项开启,并设置为 male_1_1_A。
  5. 进行测试运行。当受到敌人攻击时,应播放受伤音效并闪烁,但目前玩家和僵尸会互相推挤,需要解决此问题。
  6. 选择 Player 节点,将 Collision > CollisionLayer 从 1 更改为 2。Layer 表示自身所属的物理层级,Mask 表示与之发生碰撞的层级。由于僵尸的 Layer 为 2、Mask 为 1,将玩家也设置为 Layer 2 后,两者将不再互相碰撞。*关于 CollisionLayer/CollisionMask 的详细说明请参阅单独的手册。
  7. 现在,该角色已设置为 HP 为 20,受到敌人攻击时扣除 1 点生命值,并在 1 秒内处于无敌状态。

说明

TakenDamageSettings 的功能。
可以设置受到特定属性攻击时的伤害倍率等参数。因此,在设定弱点或抗性时非常有用。此外,还可以设置受击停顿(Hit Stop),例如在受到大量伤害时暂时进入慢动作效果。

1 个赞

步骤2:制作HP条。

  1. 打开 gamescene 标签页,选择 UI

  2. 添加一个新节点 ImageGauge。不希望受UI等摄像机滚动影响的对象,应创建在 UI 节点下。

  3. 按如下方式设置 ImageGauge 属性。将 sampleplayerhp 设置为当前值,将 sampleplayermax_hp 设置为最大值。注意,Object_Sampleplayer.tscn 位于 sampleobject 文件夹中。

  4. 继续设置 ImageGaugeTextureProgressBar 属性。启用 Nine Patch Stretch,并设置 Left Limit: 10pxRight Limit: 10px。这样可以在不破坏条形图比例的情况下进行缩放。

  5. 设置 ImageGauge 的纹理。请使用文件系统路径 templates > objects > ui > interface > variation_02_Ornate 中的图像。将 I_002_hp_horizontal_02.png 设置为 Under,将 I_002_hp_horizontal_03.png 设置为 Progress

  6. 调整 ImageGauge 的大小。蓝色边框包围的部分是UI显示区域,请将其放大到您喜欢的尺寸。

  7. 尝试测试运行。如果设置正确,HP将以白色条形显示,当受到僵尸攻击时应该会减少。

  8. 最后添加边框。作为 ImageGauge 的子节点,添加一个新节点 NinePatchRect。这是一个用于创建启用 NinePatchStretch 的矩形的节点。

  9. I_002_hp_horizontal_01.png 应用于 NinePatchRectTexture,然后按下 EditRegion 按钮。

  10. 将显示 NinePatch 创建界面,请移动黑白条并按如图所示进行设置。不是白色实线。

  11. 放大并将其叠加在HP条上方。

  12. HP条制作完成。

说明

条形图类型
通过更改 ImageGaugeFillMode,可以制作各种类型的条形图。也可以创建垂直条形图和圆形条形图。
此外,还可以通过 Tint 属性更改各条形图的颜色。

关于 Nine Patch
这是一种将图像分割为9部分,并根据分割位置调整缩放比例以防止比例失调的技术。也可用于消息窗口等场景。

第5期请点击此处