DXライブラリ 総合スレッド 2008at GAMEDEVDXライブラリ 総合スレッド 2008 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト260:名前は開発中のものです。 08/12/13 01:45:20 E/1bppJy if(enemy01_Life < 0){ DeleteGraph( enemy01 ) ; } else if(hitS < hit ){ PlaySoundMem( hit_test , DX_PLAYTYPE_BACK ); shotflag = 0; enemy01_Life -=1; } このコードで、最後のenemy01_Life -=1の判定を一回だけ判定場合ってどうすればいいの? ダメージ判定だけがどうしても残ってしまう 261:名前は開発中のものです。 08/12/13 02:02:18 Swo2xfir >260 具体的に何がしたいが、何が起こってるのかを示せ。 コードにはコメントを入れろ。第三者には何をやってるか分からない。 んで、だ。 ショットが命中した時、 (1)ショット自体を消す(敵に当たると弾が消える) (2)敵ごとにカウンタを作っておき、「一度当たったら10フレームの間は無敵」とかにする (3)弾ごとに自分がどの敵に命中したかを覚えておき、2度目は命中扱いにならないようにする こんな感じ? 262:名前は開発中のものです。 08/12/13 02:20:00 E/1bppJy >>261 玉の画像は消えるんだけど、当たり判定だけが「次にショットボタンを押すまで」残るんだ。 何がしたいかは、「玉一つにつき一回だけダメージ判定」をしたい。 ショットコード↓ if( Key & PAD_INPUT_A && shotflag == 0){ //ショットボタンが押されたら PlaySoundMem( p_shot_se , DX_PLAYTYPE_BACK );//ショット音を鳴らす shotX = PlayerX ; shotY = PlayerY ; //プレイヤーの現在位置を取得 shotflag = 1 ; //ショットフラグONにする } if( shotflag == 1 ){ //ショットフラグONになったら shotY -= SHOT_SPEED ; DrawGraph( shotX+10 , shotY , p_shot_img , TRUE ) ; if(shotY < SHOT_DELAY){ shotflag = 0 ; } } 判定コード↓ GetGraphSize( enemy01 , &SizeX , &SizeY ) ; //グラフィックのサイズを取得 hit = SizeX/2 ; //グラフィックの当たり判定(半径) hitX = shotX - enemy01X; hitY = shotY - enemy01Y; //三角形の斜辺を除くXYの長さ hitS = sqrt(hitX*hitX+hitY*hitY); //斜辺 if(enemy01_Life < 0){ //敵死亡してる時 DeleteGraph( enemy01 ) ; } else if(hitS < hit ){ //(ヒット時) PlaySoundMem( hit_test , DX_PLAYTYPE_BACK ); shotflag = 0; enemy01_Life -=1; 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch