我已經創建了一個我打算在遊戲中使用的簡單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引擎實例不僅從輸入例子,但是從幾十其他地方不使其靜態的。 (我真的不想把它作爲參數傳遞)。
謝謝大家對你非常有用的答案!你給了我很多想法,那就是我會做的。喝杯咖啡,看看我能如何實施這些建議。 – Tony 2011-01-23 09:41:51