魔兽3 基于状态的界面管理

需求:

  • 存在装备、英雄、技能界面,同时这3个界面都归纳于“单局界面”。
  • 玩家通过不同的操作可以直接打开对应子界面。
  • 同时要确保“单局界面”存在一个菜单按钮矩阵,其状态与当前实际显示的子菜单一致。

可以通过状态变量来管理这种情况。

变量:

  • m_visible: 单局界面是否可见
  • m_menu_index: 当前显示的子菜单

API设计:

  • 仅通过API来管理变量的数值,不直接操作控件。

逻辑方法:

  • 通过一个统一的refresh方法来刷新界面,根据状态变量来更新当前应该显示/隐藏的子界面,以及菜单按钮矩阵的状态。
  • 仅通过refresh来操作控件。

子界面的主控件(panel)可以单独放到不同的脚本文件中,通过refresh来控制其显示和隐藏。
必须确保控件始终是通过主菜单界面逻辑来进行管理的,以确保逻辑清晰。