こんにちは、いつもお世話になっています。
龍神録プログラミングの館の35章以降なんですが、
bossの弾幕でレーザーが発射されている時のことです。
レーザーが発射された状態でbossのhp(体力)がゼロになるとき、
つまり画面上のメーターがゼロになる時、次の弾幕に
移ってもレーザーの画像が残ったままになります。
レーザーを売っていない状態で次の弾幕に移るときは
大丈夫です。
まだ初心者なものですから、この章あたりまでくると
何度読み直しても分かりません。
ためしに、lazer[0].cntを表示したところ、
lazerは320カウントで繰り返しています。
lazerが発射されていない時にメーターがゼロになると
カウントは320で止まったままで次の弾幕に移ります。
lazerが発射された状態でメーターがゼロになると
カウントはカウントしつづけ、lazerの画像が残ったまま
次の弾幕に移ります。
lazer.cnt++;が記述されているところも見つけられませんでした。
アドバイスをお願いします。
レーザーの画像が残る
Re:レーザーの画像が残る
レーザーが初期化されていないのではないでしょうか?
memset(lazer,0,sizeof(lazer_t)*LAZER_MAX);
を適当な場所に書いてやるといいと思います
#追記
#35章だとboss_shot.cpp内の167行当たりに挿入してやればよいと思います。
後、レーザーをカウントしている場所は
shot.cpp 内の lazer_calc() の中 です
memset(lazer,0,sizeof(lazer_t)*LAZER_MAX);
を適当な場所に書いてやるといいと思います
#追記
#35章だとboss_shot.cpp内の167行当たりに挿入してやればよいと思います。
後、レーザーをカウントしている場所は
shot.cpp 内の lazer_calc() の中 です
Re:レーザーの画像が残る
返信ありがとうございます。
何箇所か入れてみたんですが、だめでした。
//ボスの弾幕メイン
なお、35章のサンプルをそっくりそのまま使用したので
memset(lazer,0,sizeof(lazer_t)*LAZER_MAX);は
ini.cppのini()に記述されています。
ここの製作者には大変お世話になっているので失礼なんですが、
バグということはないんでしょうか。
この章を勉強されたほかの人には、この症状が
でないんでしょうか。
lazer.cnt++は、boss_shot.cppとboss_shotH.cppばかり
探していたのできずきませんでした。
ありがとうございました。
何箇所か入れてみたんですが、だめでした。
//ボスの弾幕メイン
void boss_shot_main(){ if(stage_count==boss.appear_count[0] && boss.flag==0){//開始時間なら enter_boss(0);//開始 //反魂蝶のBGMを流す場合はload.cppを変更後、ここの注釈を外してください。 // PlaySoundMem(sound_se[99],DX_PLAYTYPE_BACK); } if(boss.flag==0)//ボスが登録されて無ければ戻る return; calc_boss(); if(boss.phy.flag==1)//物理演算移動オンなら calc_phy();//物理計算を if(boss.state==2 && (boss.hp<=0 || boss.endtime<=0)){//弾幕中で体力が無くなったら se_flag[1]=1;//敵のピチュリ音 se_flag[11]=1; // ここに入れてもだめでした。 enter_boss(1);//次の弾幕を登録 // ここに入れてもだめでした。 } if(boss.state==1){//弾幕間の待機時間 waitandenter(); // ここに入れてもだめでした } if(boss.state==2){//弾幕中なら boss_shot_bullet[boss.knd]();//弾幕関数へ boss_shot_calc();//弾幕計算 } boss.cnt++; }入れた場所が悪かったのかもしれません。
なお、35章のサンプルをそっくりそのまま使用したので
memset(lazer,0,sizeof(lazer_t)*LAZER_MAX);は
ini.cppのini()に記述されています。
ここの製作者には大変お世話になっているので失礼なんですが、
バグということはないんでしょうか。
この章を勉強されたほかの人には、この症状が
でないんでしょうか。
lazer.cnt++は、boss_shot.cppとboss_shotH.cppばかり
探していたのできずきませんでした。
ありがとうございました。
Re:レーザーの画像が残る
ttp://www.play21.jp/board/formz.cgi?action=res&resno=33007&page=&lognum=101&id=dixq&rln=33065
ここの最後の当たりは参考になりませんか?
#追記
yuさんの書かれているあたり(enter_boss(1);の前)に書いてみたら消えたのですが、すずめさんは消えてないみたいですね・・・
ここの最後の当たりは参考になりませんか?
#追記
yuさんの書かれているあたり(enter_boss(1);の前)に書いてみたら消えたのですが、すずめさんは消えてないみたいですね・・・
Re:レーザーの画像が残る
同じ質問があったんですね。
たいへん失礼しました。
実はその質問も途中まで読んでいたんですが、
別の問題だと思って最後まで読みませんでした。
最後のほうに、私と同じトラブルが書かれていたとは
きずきませんでした。
参考にさせていただきます。
たいへん失礼しました。
実はその質問も途中まで読んでいたんですが、
別の問題だと思って最後まで読みませんでした。
最後のほうに、私と同じトラブルが書かれていたとは
きずきませんでした。
参考にさせていただきます。
Re:レーザーの画像が残る
新しく35章をすべてサンプルを使用して
作り直して試してみました。
yuさん、pookaさんの言うとおり
enter_boss(1)の前に書いたら
見事に消えました。
いままでは簡単なシューティングゲームなどを
作っていたので、memsetなど使ったことがなく
たいへん勉強させていただいています。
これからもよろしくお願いします。
作り直して試してみました。
yuさん、pookaさんの言うとおり
enter_boss(1)の前に書いたら
見事に消えました。
いままでは簡単なシューティングゲームなどを
作っていたので、memsetなど使ったことがなく
たいへん勉強させていただいています。
これからもよろしくお願いします。
Re:レーザーの画像が残る
すみません、初期化漏れですorz
配布用のコード全部修正しておきます^^;
いやはや何か間違いがあると直すのにスーパー苦労するので大変です(汗
一括置換は他のトラブルを招きそうで怖いし・・。
これからも何か間違いなどありましたがご指摘お願いしますm(_ _;)m
配布用のコード全部修正しておきます^^;
いやはや何か間違いがあると直すのにスーパー苦労するので大変です(汗
一括置換は他のトラブルを招きそうで怖いし・・。
これからも何か間違いなどありましたがご指摘お願いしますm(_ _;)m
Re:レーザーの画像が残る
管理人さん、いつもお世話になっています。
いままでやりたくでもできなかったことも
100倍くらいのことが分かりやすく解説されて
いるので、ここ数ヶ月毎日勉強させてもらっています。
ほんとにありがとうございます。
いままでやりたくでもできなかったことも
100倍くらいのことが分かりやすく解説されて
いるので、ここ数ヶ月毎日勉強させてもらっています。
ほんとにありがとうございます。