第 2 步 - 创建大灯指示灯

在本教程的这一步中,您将创建大灯指示灯,并使用状态机设置大灯指示灯在不同状态下的外观。

../../_images/indicator-step2-completed-with-needle.gif

创建大灯指示器

在本节中,您将学习创建大灯指示灯。

要创建大灯指示灯:

  1. 在 Node Tree 中,右键单击 FuelLevel 节点,选择 Duplicate,按下 F2 键,并将节点重命名为 Headlights。

    ../../_images/create-duplicate-node.png ../../_images/headlights-node-created.png
  2. 在 Node Tree 中选择 Headlights 节点,并在 Properties 中单击 remove-binding 旁边的两个绑定以将其删除。

    ../../_images/remove-bindings.png
  3. 在 Node Tree 中选择 Headlights 节点,在 Preview 中选择 Node tool node-tool,并将 Headlights 节点拖到时钟的右侧。

    小技巧

    当您拖动具有 Node tool 的节点时,按住 Shift 键以沿真正的水平或垂直线移动节点。

    ../../_images/headlights-node-duplicated-preview.png
  4. 在 Node Tree 中选择 Headlights 节点,在 Properties 中右键单击 SecondaryColor 属性并选择 Remove。

    ../../_images/properties-remove-secondarycolor.png
  5. 在 Node Tree 中选择 Headlights 节点,并在 Properties 中设置:

    • Layout Width 到 41 和 Layout Height 到 31。

      通过这种方式,您可以设置要从 TileAtlas 纹理中绘制的车灯指示器图像的大小。

    • OffsetInTileAtlas 属性字段:

      • X 到 0

      • 将 Y 设为 0。

      通过这种方式,您可以设置从 TileAtlas 纹理的左上角到您想要显示的低灯光指示器图像的距离(以像素为单位)。

    • 将 PrimaryColor 属性字段 Hue (H) 设置为 95。

      这样,您将使用绿色绘制大灯指示灯。

    ../../_images/set-headlights-node-properties.png ../../_images/headlights-node-configured-preview.png

控制大灯指示器

在本节中,您将使用状态机设置大灯指示灯在不同状态下的外观。

要控制大灯指示器:

  1. 在 Node Tree 中选择 Headlights 节点,并在 State Tools 中点击 Create State Manager。

    您可以在 Preview 窗口下方找到 State Tools 窗口。

    Kanzi Studio 创建一个状态管理器并将其分配给 Headlights 节点。

    ../../_images/create-state-manager4.png
  2. 在 State Tools 中,单击 Create State 三次以创建三个状态,双击每个状态的名称,并将状态重命名为 Off、Low 和 High。

    您使用这些状态来设置 Headlights 指示器的外观:

    • 当大灯关闭时,Off 状态。

    • 当近光灯打开时,Low 状态。

    • 当远光灯开启时,High 状态。

    ../../_images/create-three-states.png ../../_images/three-states-created.png
  3. 在 State Tools 中,单击 <No Controller Property>,选择 + Create Property Type,并在 Create Property Type 窗口中设置:

    • Name 到 Indicator.Headlights

    • Type 到 Enum

    在 Library > Property Types > Indicator 中,Kanzi Studio 创建了 Indicator.Headlights 枚举属性类型,其枚举键具有您创建的状态名称。您使用此自定义属性类型在 Headlights 指示器的 Off、Low 和 High 状态之间切换。

    ../../_images/create-controller-property1.png ../../_images/create-indicator-enum.png ../../_images/controller-property-in-library.png
  4. 在 Node Tree 中选择 Headlights 节点,在 Properties 中右键单击,然后选择 Add Property > Node > Visible。

    使用 Visible 属性,您可以控制节点的可见性。

    ../../_images/add-visible-property-to-node.png
  5. 在 Off 状态下的 State Tools 中,单击 store-current-values 以将 Visible 属性的当前值保存到该状态。

    由于 Visible 属性在 Off 状态下被禁用,Headlights 节点在该状态下不可见。

    ../../_images/set-off-state-properties.png ../../_images/adding-visible-property.png
  6. 在 Properties 中启用 Visible 属性,在 State Tools 中,在 Low 状态下,单击 store-current-values 以将 Visible 属性的当前值保存到该状态。

    通过为 Low 状态启用 Visible 属性,可以使 Headlights 节点在该状态下可见。

    ../../_images/set-low-state-properties.png
  7. 在 Properties 集中:

    • OffsetInTileAtlas 属性字段 Y 到 31。

    • 将 PrimaryColor 属性字段 Hue (H) 设置为 163。

    ../../_images/configure-high-state-properties.png
  8. 在 High 状态下的 State Tools 中,单击 store-current-values 将属性的当前值保存到 High 状态。

    ../../_images/set-high-state-properties.png
  9. 在 State Tools 中,单击 edit-state-manager 以停用 State Tools。

  10. 在 Node Tree 中选择 Headlights 节点,在 Properties 中右键单击,然后选择 Add Property > Controller Properties > Indicator.Headlights。

    ../../_images/add-lights-property-to-node.png

在 Node Tree 中,选择 Headlights 节点,并在 Properties 中将 Indicator.Headlights 属性设置为:

  • Off 以关闭大灯指示灯。

  • Low 以显示近光灯指示器。

  • High 以显示远光灯指示器。

../../_images/indicator-step2-completed-with-needle.gif

接下来该做什么?

在本教程中,您学习了如何创建集群指示器。您学习了如何使用图块图集以及如何使用绑定和状态管理器来控制指示器。您可以使用在本教程中学到的相同方法,将其他指示器从 TileAtlas 纹理添加到集群中。以下是设置 TileAtlas 纹理中每个指示器的大小和位置的属性值。

属性 (Property)

../../_images/windshieldwiperfluid.png ../../_images/turnleft.png ../../_images/tiretemperature.png

OffsetInTileAtlas X

74

40

77

OffsetInTileAtlas Y

0

33

33

Layout Width

38

30

30

Layout Height

33

30

30

要控制每个指示器的可见性,您可以:

  • 在每个指示器的节点中添加并使用 Visible 属性。

  • 创建您自己的属性类型,并使用绑定来设置每个指示器节点的 Visible 属性的值。

../../_images/next-steps.png

您还可以:

另请参阅

要详细了解如何使用状态机以及修改状态之间的迁移,请参阅 使用状态机。

要详细了解有关您可以创建的不同自定义属性类型的更多信息,请参阅 创建属性类型。

要了解 Kanzi 属性的基本原理,请参阅 属性系统。