タスクシステムのサンプルプログラムを見て知った方法。
プログラム内で共通に使うようなものを寄せ集めておくクラスを用意すると便利。たとえば、タスクコントローラーとか入力判定のクラス、描画のクラスなど、ゲーム内に一つあれば十分なもの(デザインパターンでいうところのsingletonパターンというやつ)をまとめておく。
こんな感じ。
class GameInfo { public Win32Window window; public Key1 key; public TaskController taskController; }
で実際に使うときにはゲーム全体の初期化部分で、GameInfoのオブジェクトを作成して値を中身を初期化する。
GameInfo info; private void Form1_Load(object sender, EventArgs e) { info = new GameInfo(); info.window = new Win32Window(pictureBox1.Handle); info.key1 = new Key1(); info.taskController = new TaskController(); }