初めまして。初投稿になります。
マリオカート64やスターフォックス64等のような画面4分割方式での4人対戦型ゲームを作ろうと思っているのですが、画面分割のうまい方法が分かりません。単純に一画面640×480を4分割することも考えたのですが、その場合、画像の表示やスクロールなどの処理が煩雑になってしまい、効率が良くない気がします。もし、座標系を4画面分別々に独立に管理する方法があるのならば、教えていただきたいと思い、質問しました。また、ご存知の方がいましたら、実際にこのような4画面分割型の対戦ゲームを製作する場合、一般にはどのように4画面を管理しているのかを教えていただけると嬉しいです。
なお、私の開発環境は次の通りです。
・Microsoft社製 VisualStudio2005ExpressEdition
・Windows Platform SDK
・Microsoft DirectX SDK
・DXライブラリ VisualC++用(Ver2.23)
C/C++しての一般的な知識はあります。どうぞ宜しくお願いします。
4人対戦型ゲームにおける画面4分割の方法
Re:4人対戦型ゲームにおける画面4分割の方法
うまく関数化してやれば、複雑になることも無いと思います。 例えば typedef struct{ int x,y; }ch_t; ch_t ch[4]; void draw_line(int x, int y){ x,yから45度、20の距離線を引く; } main(){ //中略 draw_line(ch[0].x, ch[0].y); draw_line(ch[1].x, ch[1].y); draw_line(ch[2].x, ch[2].y); draw_line(ch[3].x, ch[3].y); } 上記は単なる例なので、このようには描かないと思いますが、 4つのキャラの情報をキレイに構造体に収めてやり、関数に値を渡して計算する事で、 キャラが沢山になることを苦に思わずに作れると思います。 関数を作るとき、なるべく「汎用的」な関数になるように心がける事が近道になると思います。 キャラのもつ座標の情報は全て同じ種類の座標とし、描画する時にだけ、位置をわけてやればいいんです。 キャラ1もキャラ2も(100,50)という座標を持っていたとしても、描画する時に4つにわけてやれば、重なる事もありません。 描画可能領域は変更可能ですので http://homepage2.nifty.com/natupaji/DxL ... .html#R4N3 この関数を使うとうまく分割して描画出来ます。 頑張ってください。