オブジェクト指向的なゲームオブジェクトの書き方。
C言語の関数を返す関数の型の話が話題になってたので、
YTさんに関数を返す関数とかといったらD言語の問題が解決できちゃいました。
CPSッポクかけて嬉しいです。
typedef typeof(Move) delegate() Move; class Enemy { Move movef; this() { movef = &a; } void move() { movef = movef(); } Move a() { printf("a\n"); return &b; } Move b() { printf("b\n"); return &a; } } void main() { Enemy e = new Enemy(); for (int i = 0; i < 10; i++) e.move(); }
で、ababababa...と出ます。
このほうが、制御の流れが分かりやすいっしょ。