ページ 1 / 1
2P同時プレイの処理
Posted: 2010年10月22日(金) 14:56
by 智寛
すみませんが質問をさせてください。
龍神録のプログラミング練習を50章まで終わらせた所なのですが、
ここで2P同時プレイを可能にさせようと思ってプログラムを組み替えています
自機に関する関数などを雑魚敵と同じようにいじったりしているのですが
敵との判定や自機の弾の発射など、関数や処理が多くてチンプンカンプンな状態です
ですが是非導入したいシステムなので、アドバイスをお願いします
環境は「WindowXP」、コンパイラは「Visual C++ 2008 Express Edition」です
Re:2P同時プレイの処理
Posted: 2010年10月23日(土) 00:43
by softya
いきなり50章に追加せずに、まず9章あたりに追加してみてはどうでしょうか?難度は格段に下がるはずです。
あとは、それを応用して17章に追加するとかして飛び飛びに50章まで持っていけば難しさも下がると思いますので試してみてください。
もし、それも出来ないなら1章から詳細に理解しなおす必要があります。
Re:2P同時プレイの処理
Posted: 2010年10月23日(土) 11:24
by Dixq (管理人)
モジュールの多重化を想定していない仕組みなので、実現するには結構多くの修正を施さなくてはならなそうです。
チンプンカンプンとのことですが、かなりしっかりと理解しないとごっそり改造は難しいと思います。
手始めに簡単な変更からしてみてはどうでしょう?
例えばボスは今一体しか出てこないはずですが、同時に2体出すようにしてみて下さい。
それが出来たらキャラを2体、敵のまとまりを2つ・・と徐々に増やしていけばよさそうです。
Re:2P同時プレイの処理
Posted: 2010年10月23日(土) 23:06
by 智寛
お返事ありがとうございます。
あの後50章のプログラムをベースに自機の構造体を雑魚敵の物と同じようにして2回処理させ、
それに応じてプログラム内の変数も書き換えた結果、多くの問題を残しつつも何とか2Pを表示させることはできました。
その問題で質問です。
cshot.cpp内にあるオプションの動作と使用フラグを処理する部分がうまくいきません。
2機の自機に2個づつオプションを付けたいのですが、片方に集中してしまいます。
//オプションのぼんぼん計算(CHARA_MAX=2)
void calc_option_bb(){
for(int p=0;p<CHARA_MAX;p++){
if(ch[p].power>=100){//パワー100以上ならオプションをつける
for(int i=0;i<2;i++){
if(CheckStatePad(configpad.slow)==0){//低速移動中じゃないなら
option_bb[i+p*2].x=ch[p].x+OPTION_X*(i==0 ? -1 : 1);
option_bb[i+p*2].y=ch[p].y+OPTION_Y+sin(PI2/150*option_bb.cnt)*20;
}
else{
option_bb[i+p*2].x=ch[p].x+OPTION_X/2*(i==0 ? -1 : 1);
option_bb[i+p*2].y=ch[p].y+OPTION_Y/2;
}
option_bb[i+p*2].cnt++;
}
if(option_bb[0+p*2].flag==0)
option_bb[0+p*2].flag = option_bb[1+p*2].flag = 1;
}
else{
if(option_bb[0+p*2].flag==1)
option_bb[0+p*2].flag = option_bb[1+p*2].flag = 0;
}
}
}
今現在の計算式はこうです。
どの部分が間違っているのか、ご教授をお願いします。
Re:2P同時プレイの処理
Posted: 2010年10月24日(日) 16:41
by softya
これだけだと問題点は分かりません。表示の問題かも知れませんので。
デバッガ等で値を調べてみたほうが良いと思います。