4人対戦型ゲームにおける画面4分割の方法

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
anonymous

4人対戦型ゲームにおける画面4分割の方法

#1

投稿記事 by anonymous » 18年前

初めまして。初投稿になります。
マリオカート64やスターフォックス64等のような画面4分割方式での4人対戦型ゲームを作ろうと思っているのですが、画面分割のうまい方法が分かりません。単純に一画面640×480を4分割することも考えたのですが、その場合、画像の表示やスクロールなどの処理が煩雑になってしまい、効率が良くない気がします。もし、座標系を4画面分別々に独立に管理する方法があるのならば、教えていただきたいと思い、質問しました。また、ご存知の方がいましたら、実際にこのような4画面分割型の対戦ゲームを製作する場合、一般にはどのように4画面を管理しているのかを教えていただけると嬉しいです。

なお、私の開発環境は次の通りです。

・Microsoft社製 VisualStudio2005ExpressEdition
・Windows Platform SDK
・Microsoft DirectX SDK
・DXライブラリ VisualC++用(Ver2.23)

C/C++しての一般的な知識はあります。どうぞ宜しくお願いします。

管理人

Re:4人対戦型ゲームにおける画面4分割の方法

#2

投稿記事 by 管理人 » 18年前

うまく関数化してやれば、複雑になることも無いと思います。
例えば

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
この関数を使うとうまく分割して描画出来ます。
頑張ってください。

anonymous

Re:4人対戦型ゲームにおける画面4分割の方法

#3

投稿記事 by anonymous » 18年前

管理人様。アドバイスありがとうございます。
管理人様から頂いたアドバイスを元に、色々と試行錯誤してみます。

閉鎖

“C言語何でも質問掲示板” へ戻る