ページ 11

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

Posted: 2008年8月03日(日) 23:18
by cleria
初めて書かせていただきますcleriaと申します。
C言語はかじった程度ですが、ゲームプログラミングをしてみたいと思い、
龍神録プログラミングの館で地道に勉強させていただいています。

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

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

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

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

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

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

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

Posted: 2008年8月04日(月) 00:00
by cleria
すばやいお返事ありがとうございます。
今、龍神録プログラミングの館で確認してきました。

以下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章あたりで・・

Posted: 2008年8月04日(月) 00:27
by 管理人
う、ごめんなさい、stege_count=1が正しいです。
もしもサンプルプロジェクトのコードとウェブのコードが違っている場合は
サンプルプロジェクトのコードが正しいです。

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

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

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

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

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

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

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

Posted: 2008年8月04日(月) 00:44
by 管理人
うぅ、きっと誰か他にも気づいた人いたんでしょうけど、、教えて欲しかった(T_T
ありがとうございます。
早速修正しておこうと思いますm(_ _;)m