1人でゲームが作れるように修行します。at GAMEDEV1人でゲームが作れるように修行します。 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト600:せいれい 09/03/04 21:55:43 1TDttkKc もうちょっと調整したらゲームシステム部分の作成に移れそう そろそろ背景やファイル入出力もいじらねば(・∀・) 601:SGGK ◆6pZCoAtaxk 09/03/04 22:20:50 M0lqZAHx こちらは、まだまだバグ取り中~。 昨日言っていたバグの原因は、プログラムをかなり略して書くと、 メインループ(){ 選手.move();//選手の移動処理 ボール.move();//ボールの移動処理 ゴール.move();//ゴールの移動?処理 当たり判定();//それぞれのオブジェクトの当たり判定をここでまとめて行う } ・・・となっていて、当たり判定関数の中では、 while(最後の選手まで繰り返す){ if( 選手とボールが当たっているか? ){ a->atari=true;// 選手のメンバ変数atariのフラグをONする。 b->atari=true;// ボールのメンバ変数atariのフラグをONする。 } else{ a->atari=false;// 選手のメンバ変数atariのフラグをOFFする。 b->atari=false;// ボールのメンバ変数atariのフラグをOFFする。 } ボールを蹴る処理は、メインループの「ボール.move();//ボールの移動処理」の中にあって、蹴れる条件は、 (Xキーが押されている)&&(ボールのatariフラグがONである) なのに対し、今のプログラムでは、自分がコントロールできるのは一番目の選手だけなので、 選手をボールに接触させてatariフラグをONにしても当たり判定関数のwhile内で最後の選手まで 判定するので、最後の選手はボールに触れてないから、b->atari=falseになって、ボールのatariフラグは結局最後にはOFFにされてしまう。 その状態でメインループのボール移動関数に戻るので、いつまでたってもボールを蹴れる条件が成立しない・・・orz 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch