在我的游戏中,我有一个panelA,它的复选框可以在panelA的父级中切换面板。它还具有一个“离开”按钮,该按钮需要调用只有PanelA的 parent 知道的场景管理器。

我想到了:

  • 仅为此
  • 制作一个监听器
  • 让父级创建PanelA并使其子级成为
    访问它们并可以从中接收 Action 事件

  • 这些都不是那么干净。会有更好的方法吗?

    我的游戏使用我制作的GUI系统。将事件发送给父级将不起作用,因为父级不知道它要处理的gui组件。

    谢谢

    最佳答案

    在不知道系统设计的情况下很难知道,但是基本上您不想更改面板中的复选框,但是您想要更改状态并使这些复选框反射(reflect)状态。

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

    parent->waitForVerticalBlankCheck.Checked=true
    

    相反,你想要这个
    renderingConfiguration->isVerticalBlankEnabled=true;
    

    并在“主面板”中
    if(renderingConfiguration->isVerticalBlankEnabled)
        waitForVerticalBlankCheck.Checked=true;
    

    嗯..非常假冒,但是希望您能想到这个主意:)

    10-06 12:55