我创建了一个简单的GUI引擎,打算在游戏中使用。我的问题是如何实例化一个类,使其可以在多个堆栈帧中访问而不是静态的(人们已经明确表示静态变量只是邪恶的)。下面是我的代码示例:
class MyGame
{
class InputEngine
{
internal void DoInput()
{
if (Keys["F1"].IsPressed)
{
// Create a window using the gui engine
}
}
}
class GuiEngine
{
internal void Update() { }
internal void Draw() { }
}
private GuiEngine engine;
private InputEngine input;
internal MyGame()
{
this.input = new InputEngine();
this.engine = new GuiEngine();
}
internal void Update()
{
this.engine.Update();
this.input.DoInput();
}
internal void Draw()
{
this.engine.Draw();
}
}
如何在不将其设为静态的情况下,从数十个其他位置访问GUI引擎实例。 (我真的不想将其作为参数传递)。