ページ 11

龍神録のボスの弾幕

Posted: 2011年3月10日(木) 22:03
by りり
龍神録を参考にして作っています、初心者です^0^
龍神録ボスごとに弾幕の種類を変えたいので質問です

トピック検索したらこちらに同じ質問が載っていました、
自己解決したらしの部分が書いてないので出来ませんでした
http://dixq.net/forum/viewtopic.php?f=3 ... %8B#p53172
考えましたが、意味不なので教えてください

funk.hの弾幕の順番を変えればよさげなので
if分岐させて、stage==1ならこの弾幕の順番、stage==2ならこの順番みたいにしたいと思って
funk.hのこの関数に

コード:

 
void (*boss_shot_bullet[DANMAKU_MAX])() =
{
//中ボス
        boss_shot_bulletH000,// 0ノーマル
        boss_shot_bulletH002,// 1 スペル~パーフェクトフリーズ~
//ラスボス
        boss_shot_bulletH004,//10 スペル~ケロちゃん~
        boss_shot_bulletH009,//11 スペル~反魂蝶~
}


この中にIf elseifをいれたら、ifはコンパイルエラーになりました
なぜですか?

あとini()の中の
boss.danmaku_num[0]=1;//中ボスが何個目までの弾幕を出すか
boss.danmaku_num[1]=2;//最後に出るボスが何個目までの弾幕を出すか(47)

この代入の値を変えましたが、ボスごとに弾幕種類や順番変える話とは違う気がしました
もしini()で変えるやり方もありますか?何番目~何番目の弾幕使うみたいに出来ますか?

何を変えていいのか良くわかりませんorz

Re: 龍神録のボスの弾幕

Posted: 2011年3月10日(木) 22:23
by jay
龍神録の仕様ですね~
これはステージを変更する部分は各々で作るしかないので、ステージ毎の弾幕を用意する方法もまた各々になってくるのですが・・・

>この中にIf elseifをいれたら、ifはコンパイルエラーになりました なぜですか?
この部分は簡単なお話です

void (*boss_shot_bullet[DANMAKU_MAX])() =
の部分を見れば分かるように、これはボスが使う弾幕の順番を示す「配列」な訳です
配列の初期化中にif文やelse文等を入れるとエラーが出るのは当然ですね。


そして、ボスの弾幕を変える方法ですが
僕の場合は
void (*boss_shot_bullet[DANMAKU_MAX])() =
{
1面中ボス
1面ボス

2面中ボス
2面ボス
}

といったように配置していきました。
龍神録の場合、boss.kndというbossの構造体の変数で、その時に使う弾幕を決めていたと思うので
boss.kndの値を初期化せずにそのまま次のステージに引き継げば使える・・・ハズです。

この辺の使用はりりさんの仕様に合ったように自分で試行錯誤するのがいいかと思いますよ。
それでは

Re: 龍神録のボスの弾幕

Posted: 2011年3月18日(金) 10:26
by りり
レスありがとうございました^^
boss_shot.cppのところを変えたらできました