トップページ > 過去ログ > 記事閲覧
敵(2P)が剣を振ろうとすると画面全体が黒くなってしまいます
名前:fm 日時: 2012/10/12 12:49

void Draw() { static int cnt=0,tx=0,cnt2=0,tx2=0; if(ex>jx)//自機のX座標より敵のX座標が大きければ { DrawGraph((int)jx,(int)jy,GC[SelC],TRUE); if(jtflag==1) DrawGraph((int)jx+16,(int)jy,TC[SelC],TRUE); }else{//自機の方が大きければ DrawTurnGraph((int)jx,(int)jy,GC[SelC],TRUE); if(jtflag==1) DrawTurnGraph((int)jx,(int)jy,TC[SelC],TRUE); } static int xx=0; xx^=1;//0→1→0→1を繰り返す DrawRectGraph((int)jx-24,(int)jy,xx*48,0,48,48,burner,TRUE,FALSE); //バーナーの炎 if(CheckSoundMem(bgm[0])) { //サウンド(bgm[0])が再生されているか? StopSoundMem(bgm[0]);//サウンドをストップ } if(JikiHP<75 || EnemyHP<75)//自機のHPか敵のHPが75より小さいなら { if(!CheckSoundMem(bgm[2])) { PlaySoundMem(bgm[2],DX_PLAYTYPE_LOOP);//BGMを流す } } if(JikiHP<75)//自機のHPが75より小さいなら { static int cnt=0; cnt=(cnt+1)%20;//0から19までループで増加 if(cnt%15==0)//cntが15で割り切れたら ShowK((int)jx,(int)jy,0);.//煙を描画 } if(JikiHP<50)//自機のHPが50より小さければ煙をもう1つ追加 { static int cnt=0; cnt=(cnt+1)%20; if(cnt%15==0) ShowK((int)jx+12,(int)jy,0); } //ShowK(jx,jy); if(EnemyHP<75)//自機のHPが75より小さいなら { static int cnt=0; cnt=(cnt+1)%16; if(cnt%15==0) ShowK((int)ex,(int)ey,0); } if(EnemyHP<50)//自機のHPが50より小さければ煙をもう1つ追加 { static int cnt=0; cnt=(cnt+1)%16; if(cnt%15==0) ShowK((int)ex+12,(int)ey,0); } if(jcutflag==1) { //ソードを加算αで描画 SetDrawBlendMode(DX_BLENDMODE_ADD,200) ; DrawRectGraph(jx+16,jy,tx*48,0,48,48,GCut,TRUE,FALSE); SetDrawBlendMode(DX_BLENDMODE_NOBLEND,255) ; cnt=(cnt+1)%100;//0〜99まで増加ループ if(cnt%10==0)//10で割り切れたら { tx++; if(tx>3)//10で割り切れたのが、4回続いたら { tx=0; cnt=0; jcutflag=0;//自機のカットフラグを0にする } } } if(ex>jx)//敵のX座標が自機X座標より大きければ { DrawTurnGraph(ex,ey,GC[SelE],TRUE); if(etflag==1) DrawTurnGraph(ex,ey,TC[SelE],TRUE); } else//違うなら { DrawGraph(ex,ey,GC[SelE],TRUE); if(etflag==1) DrawGraph(ex,ey,TC[SelE],TRUE); } static int xx2=0; xx2^=1; DrawRectGraph((int)ex+24,(int)ey,xx2*48,0,48,48,burner,TRUE,TRUE); //バーナーを描画 if(ecutflag==1) {//敵のカットフラグが1ならば //増加αで剣を描画 SetDrawBlendMode(DX_BLENDMODE_ADD,200) ; DrawRectGraph(ex-16,ey,tx2*48,0,48,48,GCut,TRUE,TRUE); SetDrawBlendMode(DX_BLENDMODE_NOBLEND,255) ; cnt2=(cnt2+1)%100;//0から99まで増加ループ if(cnt2%10==0) { tx2++; if(tx2>3) { tx2=0; cnt2=0; ecutflag=0; } } } }

Page: 1 |

Re: 敵(2P)が剣を振ろうとすると画面全体が黒くなってしまいます ( No.1 )
名前:fm 日時:2012/10/12 12:51

上が描画関数のソースコードです。 2Pが剣を振ろうとすると、何故か、画面全体が 黒くなってしまいます。(ただし、敵(2P)は 少しだけ部分的に表示されます。 どうしてそうなるのか知りたいです。お願いします。環境は、VisualC++6.0と、VisualC++2008で OSはXPです。
Re: 敵(2P)が剣を振ろうとすると画面全体が黒くなってしまいます ( No.2 )
名前:fm(自己解決) 日時:2012/10/14 17:12

この間書き込んだ者ですが、 30体でるはずのキャラクターをこういう風に 間違って記述してました。 #define MAX_C 11 int SelC[MAX_C]; int SelE[MAX_C]; #defineの所を30に直したら治りました。 ご協力ありがとうございました。

Page: 1 |