2面以降の作り方について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
MATTARI

2面以降の作り方について

#1

投稿記事 by MATTARI » 14年前

龍神録プログラミングの館を参考にしています。
2面以降の作り方がわかりません。

2面以降はmain.cppの、func_stateの値10を作って、

case 100://通常処理
enter_func_tm("最初");
calc_ch(); enter_func_tm("キャラ計算");
ch_move(); enter_func_tm("キャラ移動");
cshot_main(); enter_func_tm("自機ショットメイン");
enemy_main(); enter_func_tm("敵処理メイン");
boss_shot_main();enter_func_tm("ボスショットメイン");
shot_main(); enter_func_tm("ショットメイン");
out_main(); enter_func_tm("当たり判定");
effect_main(); enter_func_tm("エフェクトメイン");
calc_main(); enter_func_tm("計算メイン");
graph_main(); enter_func_tm("描画メイン");
bgm_main(); enter_func_tm("BGMメイン");
if(boss.flag==0)
stage_count++;

     の次に、

if(stage_count==2500)
func_state=10;

と繋げて、func_state=10の処理を一面を作ったときと同じようにしたら良いのでしょうか?

Dixq (管理人)

Re:2面以降の作り方について

#2

投稿記事 by Dixq (管理人) » 14年前

> MATTARIさん

こんにちは。
コードや変数が複雑になる事を避ける為にいくつか犠牲にして紹介している部分があるので、
残念ながらどこかのパラメータを変えただけでは2面は作れないんですよね。

ただし、基本的な機能は揃っているので、まずは、初期化関数で何を初期化しなければならないか見極め、
何のパラメータを変えなければならないか考えてみてください。

最初に、1面をクリアすると、
スコアデータ、残機数データなどの初期化してはいけないデータ以外を初期化して、
1面を繰り返す仕様にして見て下さい。

そうすれば2面の作り方が次第に見えてくるのではないかと思います。
例えば2面になった時は、中ボスやラスボスが出てくるタイミング、敵のスクリプトを読むファイル、
持たせる弾幕関数ポインタなどが変わりますよね。
少しずつそれを変更するようにしてやり、徐々に2面が出来るようにして見て下さい。

全部いっぺんに変更すると不具合が出た時にどこが悪いのか解らないかもしれませんが、このように少しずつ試せばその危険性は回避できると思います。

MATTARI

Re:2面以降の作り方について

#3

投稿記事 by MATTARI » 14年前

>Dixqさん

お返事有難うございます。
あれこれいじってみた結果、2面ができた?と思います。。
一つだけ質問なのですが、main.cppの

case 100://通常処理

のところに1面をクリアした後の2面以降の処理も書いていくのでしょうか?
それとも、2面は別のcaseに書き込んでいくのでしょうか?

Dixq (管理人)

Re:2面以降の作り方について

#4

投稿記事 by Dixq (管理人) » 14年前

メイン関数からは1面2面を意識することなく呼べるようにする設計が良いと思います。
今回の場合、背景を描画する関数なども2面以降は変わるでしょうが、それは呼んだ関数先で制御すると良いと思います。
ということで、case 100に今まで通り機能を追加していく形で良いと思います。

MATTARI

Re:2面以降の作り方について

#5

投稿記事 by MATTARI » 14年前

お返事有難うございます!
なるほど、そういう設計にするんですね。とても参考になります。
それでは、これで解決ということで、ありがとうございました!

閉鎖

“C言語何でも質問掲示板” へ戻る