援助设计问题?

时间:2012-02-12 15:52:06

标签: c++ design-patterns user-interface

在我的游戏中,我有一个panelA,其中包含用于切换panelA父级面板的复选框。它还有一个Leave按钮,需要调用只有PanelA父母知道的场景管理器。

我想到了:

  1. 仅为此制作听众
  2. 让父母制作PanelA并使其子女如此拥有 访问他们并可以接收他们的行动事件
  3. 这些都不觉得干净。会有更好的方法吗?

    我的游戏使用了我制作的gui系统。将事件发送到父项是行不通的,因为父项不知道它要处理哪些gui组件。

    由于

1 个答案:

答案 0 :(得分:2)

在不了解系统设计的情况下,有点难以理解,但基本上您不想更改面板中的复选框,但是您想要更改状态并让这些复选框反映状态。

假设您要在主面板中选中“垂直消隐”框。不想这样做

parent->waitForVerticalBlankCheck.Checked=true

而你想要这个

renderingConfiguration->isVerticalBlankEnabled=true;

并在“主面板”中

if(renderingConfiguration->isVerticalBlankEnabled)
    waitForVerticalBlankCheck.Checked=true;

嗯..非常伪,但希望你明白这一点:)