协助解决设计问题

Aid with design issue?

本文关键字:问题 解决      更新时间:2023-10-16

在我的游戏中,我有一个panelA,它有复选框来切换panelA的父级中的面板。它还有一个Leave按钮,需要向只有PanelA的父母知道的场景管理器打电话。

我想到了:

  1. 做一个听众就是为了这个
  2. 让家长制作PanelA,并让孩子们这样做访问它们,并可以从中接收操作事件

这两个都不觉得干净。有更好的方法吗?

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

感谢

如果不了解系统的设计,很难知道,但基本上你不想更改面板中的复选框,但你想更改状态,并让这些复选框反映状态。

假设您想在主面板中选中垂直空白框。不想做这个

parent->waitForVerticalBlankCheck.Checked=true

相反,你想要这个

renderingConfiguration->isVerticalBlankEnabled=true;

以及在您的"主面板"中

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

嗯。。非常伪体,但希望你能明白:)