どうしたらいいでしょうか?
具体的には
管理人さんの”ゲームプログラミングの館”での
#include"連結ファイル.h"
void main(){
switch(status){
case 0:
読み込み関数
status=1;
break;
case 1:
各種計算関数
描画関数
break;
}
}
この設計はすこしやりづらいと思いました。
例えば、読み込みメソッドにおいて読み込んだグラフィックハンドルは(グローバル変数を使わないので)
直接どこかのメソッドに送り、どこかに保持しておかなくてはなりません。
また、mainメソッドには当然値が送られないのでmainメソッドから呼び出す計算・描画メソッドはそれぞれ独立してしまいます。
これらの問題を解決し、グローバルな変数・宣言した構造体・宣言したクラスを使わず、静的変数(staticなど)を
使わずに設計するのは不可能なのでしょうか?
個人的には、「モード単位」でmainメソッド内のメソッドを分割し、ツリー状にして最後に描画メソッドを持ってくることで実現できなくもない気がするのですが・・・半グローバル?(つまりトップメニュー画面ではトップメニュー画面で読み込み・描画メソッドを持つ)
※モード単位というのは
読み込みメソッド・描画メソッド・計算メソッド単位ではなく、
トップメニュー画面・メインゲームのような単位
もしよろしければ皆様の考えをお聞かせください。
ちなみに上記のコードは、
・自由に再ロードしたい
・自由にメイン画面に戻りたい(本来はcase1:にメイン画面メソッドがあり、statusを書き換える)
・計算メソッドをジャンプすることで”ポーズ”機能を追加できる
などのような事をする前提でかいてます。