龍神録プログラミングの館12章あたりで・・

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

龍神録プログラミングの館12章あたりで・・

#1

投稿記事 by cleria » 17年前

初めて書かせていただきますcleriaと申します。
C言語はかじった程度ですが、ゲームプログラミングをしてみたいと思い、
龍神録プログラミングの館で地道に勉強させていただいています。

なんとか12章の「たくさんの敵の行動パターンを作ってみよう」までいったのですが、
実際にビルドしたところ、画面が出た直後、左上に設定上存在しないはずの敵が現れて、
行動パターン0の動きをして去っていく、という現象が起こりました。

enemy_enter関数の中で
if(enemy_order[t].cnt==stage_count && stage_count!=0)
という風に試しに書き換えると出なくなったところを見ると、なぜかstage_countが0のときに
敵が出現することになってしまっているようなのですが・・・。
なにぶん知識不足で原因をつきとめることができませんでした。
なぜこのようなことが起きるのでしょうか?

管理人

Re:龍神録プログラミングの館12章あたりで・・

#2

投稿記事 by 管理人 » 17年前

stage_countはini関数で初期化として1を入れていると思いますがいかがでしょうか?
敵の出現データは格納されていないものは全て0になっているので、
stage_countが0から始まると格納されていない配列要素のデータが大量に登録されてしまうので、
1から始まるようにしてあります。
また、12章のcsvデータは特別なのでそれようのエクセルデータを読み込むため
サンプルプロジェクトではエクセルデータの読み込みに

char fname[32]={"../dat/csv/12章/storyH0.csv"};

と書いていますがそうなっていますか?

cleria

Re:龍神録プログラミングの館12章あたりで・・

#3

投稿記事 by cleria » 17年前

すばやいお返事ありがとうございます。
今、龍神録プログラミングの館で確認してきました。

以下10章より引用させていただきます。
--ini.cppを変更--

#include "../include/GV.h"

//一番最初の初期化
void first_ini(){
        configpad.down=0;
        configpad.left=1;
        configpad.right=2;
        configpad.up=3;
        configpad.bom=4;
        configpad.shot=5;
        configpad.slow=11;
        configpad.start=13;
        configpad.change=6;
}

//ゲームの初期化
void ini(){
        stage_count=0;
        memset(&ch,0,sizeof(ch_t));//自機データの初期化
        ch.x=FIELD_MAX_X/2;
        ch.y=FIELD_MAX_Y*3/4;
        memset(enemy,0,sizeof(enemy_t)*ENEMY_MAX);//敵データの初期化
}
これ以降12章までstage_countに関する変更が見当たらないので0なのかと思っていたのですが・・・。
どういうことなのでしょう・・?
エクセルデータの読み込みのほうはちゃんとなってるので大丈夫そうです。

管理人

Re:龍神録プログラミングの館12章あたりで・・

#4

投稿記事 by 管理人 » 17年前

う、ごめんなさい、stege_count=1が正しいです。
もしもサンプルプロジェクトのコードとウェブのコードが違っている場合は
サンプルプロジェクトのコードが正しいです。

さっそく書き直しておきます。
ご報告ありがとうございます。
今後も何かミスがありましたら教えていただけると幸いです。

また、後の章になってくると細かい変更点が多くなってきますので、
全ての変更点については書いていない場合がありますので、
その時はプロジェクトの方で確認していただければと思います。

cleria

Re:龍神録プログラミングの館12章あたりで・・

#5

投稿記事 by cleria » 17年前

なるほど、わかりました。
これからはわからなければ、まずプロジェクトを落としてから確認してみることにします。
またこの掲示板で質問させていただくこともあるかもしれませんが、その時はまたよろしくお願いします^^

あ、あと全然関係ないんですがこの掲示板の「規約と使い方」の中にある義務行為に関する記述で、
「・・・公の場です。マザーを守った発言をしましょう。」
というところでちょっと笑ってしまいました。
ここも修正箇所として挙げておきます(笑)

では、本当にありがとうございました。
これからも体に気をつけて頑張ってください。

管理人

Re:龍神録プログラミングの館12章あたりで・・

#6

投稿記事 by 管理人 » 17年前

うぅ、きっと誰か他にも気づいた人いたんでしょうけど、、教えて欲しかった(T_T
ありがとうございます。
早速修正しておこうと思いますm(_ _;)m

閉鎖

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