龍神録の二面

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

龍神録の二面

#1

投稿記事 by umm » 11年前

龍神録のソースコードをほとんど借りて、ブロック崩し的なものを作っています。


手順は、ほとんど龍神録とソースが同じなので、龍神録の第48章(結構やりやすい)で自分なりにコードを書き加えて、実行して、思い通りにできたら、次はブロック崩しの方にそれをコピペ・・てきなかんじでやっています。


ここで、龍神録48章(これはいっかつDLのなかの48章です)で自分でコードを書き加え、実行しましたが、うまくいきません。
なのでこの場を借りて質問させてください。


とりあえずコードの1部分
main.cpp

コード:

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow){
	ChangeWindowMode(TRUE);//ウィンドウモード
	if(DxLib_Init() == -1 || SetDrawScreen( DX_SCREEN_BACK )!=0) return -1;//初期化と裏画面化

	while(ProcessLoop()==0){//メインループ
		music_ini();
		switch(func_state){
			case 0://初回のみ入る処理
				load();		//データロード
				first_ini();//初回の初期化
				func_state=99;
				break;
			case 99://STGを始める前に行う初期化
				ini();
				load_read();
				func_state=100;
				break;
			case 100://通常処理
				calc_ch();       
				ch_move();       
				cshot_main();    
				enemy_main();	
				boss_shot_main();
				shot_main();	 
				out_main();  	 
				effect_main();   
				calc_main();	 
				graph_main();    
				bgm_main();		 
				if(boss.flag==0 && stages.e_flag == 0)
					stage_count++;
				if(boss.end_stage_flag == 1)
				{
					stage++;
					//func_state = 99;//STGを始める前に行う初期化へ戻る
					stage_count = 0;
				}
				int Color;
				Color = GetColor( 255 , 25 , 255 ) ;
				DrawFormatString( 500, 400, Color, "第 %d 面\n", stage ) ;
				DrawFormatString( 500, 350, Color, "フラグ= %d \n", stages.e_flag ) ;
				break;
			default:
				printfDx("不明なfunc_state\n");
				break;
		}
		music_play();	
		if(CheckStateKey(KEY_INPUT_ESCAPE)==1)break;//エスケープが入力されたらブレイク
		ScreenFlip();//裏画面反映
		count++;

	}
	DxLib_End();//DXライブラリ終了処理
	return 0;
}
load.cpp

コード:

//説明文の読み込み
void load_txt()
{
	
	int fh;//ファイルハンドル

	char fname[256];//ファイル名

	sprintf(fname , "../dat/csv/sample_%d.txt",(stage+1));

	fh = FileRead_open(fname);
 
	if(fh == NULL)
	{//空だったらエラー
			printfDx("read errortxt\n");
			return;
	}
	
	for(int i=0 ; i < MAX_SENTENCE ; i++)
	{
		FileRead_gets(str[i].st , 256 , fh);//i番目のstrのポインタに(i行目の)一文を格納
		//FileRead_gets(str[i].st2 , 256 , fh[1]);//i番目のstrのポインタに(i行目の)一文を格納
 
		if(FileRead_eof( fh ) != 0)//ファイルの終わりなら
		{
				goto EXFILE1;//終了
		}
	}
EXFILE1:
	FileRead_close(fh);
}

//csvと説明文のロード関数(まとめ)
void load_read()
{
	load_story();
	load_txt();
}

動作と、質問

実行→(1面)実行されて、自分が決めた「stage_count」になったら説明文が表示される(stages.e_flag > 0),→説明の表示が消えるとstage_countが加算されて、普通の龍神録に・・・→ラスボスを倒して、新たに追加した「boss.end_stage_flag 」たるもの0より上(フラグが立っていたら)→func_stateを99に戻して初期化から始める→2面、ここで説明文が表示されません、stage_countはしっかり指定した時間で止まります。(敵はしっかり出てきます(storyの方はしっかり読み込まれていることがわかる))

graphなどは、1面で表示されており、また、2面に移る際に各構造体の変数はmemsetで初期化されるので、同じことの繰り返しで表示されるのだと思ったので、載せませんでした。

またsprintfをやめて、しっかり固定した1つのファイルのパスをかくやり方もしました、そうすれば2面でも同じ説明文が出るはずだと・・・・・表示されませんでした・・・・


read_errorとは表示されていないので、loadはできていると思うのですが・・・・どこかおかしいと推測できる箇所はあるのでしょうか?

ちなみに「stages.e_flag 」が0より上だと説明が表示される設定になっております。(graph.cppより)

umm

Re: 龍神録の二面

#2

投稿記事 by umm » 11年前

追記

コードで「 //func_state = 99;//STGを始める前に行う初期化へ戻る」とコメント扱いになっていますが、実際はコメント扱いされていません。

申し訳ありません。

アバター
spaaaark・∀・
記事: 66
登録日時: 12年前
住所: 埼玉
連絡を取る:

Re: 龍神録の二面

#3

投稿記事 by spaaaark・∀・ » 11年前

自身のほうでデバッグは試されましたでしょうか。
実際に実行時の変数の状態を見てあげると、思わぬバグを引き起こしている部分が見つかりやすいです。
今回はその怪しい部分がある程度絞られているようなので、その部分に的を絞ってやってみるといいと思います。
そうすることによって、私たちが推測するよりはるかに正しい答えが得られると思います。
(すでにされておられるようでしたら申し訳ないです。)
► スポイラーを表示
クリエイティブな生活で刺激的な毎日を!

アバター
Dixq (管理人)
管理人
記事: 1662
登録日時: 14年前
住所: 北海道札幌市
連絡を取る:

Re: 龍神録の二面

#4

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

何度も同じことを注意されていますが、名前を変えて質問する行為は規約違反です。

VWXYZwwwwwwwさん
あおいうえさん
aguroqさん
くれらっぷさん

これらと同一人物ですよね。
どれかに名前を統一して質問して下さい。
公共のPCだと書いていましたが、全員がたまたま同じPCから同じ内容の質問をするとは考えられません。

aguroq

Re: 龍神録の二面

#5

投稿記事 by aguroq » 11年前

おっとwwww

久しぶりにきてみたら僕が質問した覚えのないものにここの管理さんが勝手な決めつけをしているwww


質問者かわいそうwww

ここってIPアドレスでわかるんじゃなかったっけ?

同じモデムからでてたからそう決めつけたのかな???????????

公共施設なんだから、それぞれのPCのデータは同じモデムから・・・って考えるのはふつうじゃない?

aguroq

Re: 龍神録の二面

#6

投稿記事 by aguroq » 11年前

でも、ここの掲示板は、答えても、具体例などは出してくれない、初心者向けの掲示板ではない事は確かだからね。


「始めて3ヶ月の者です」という質問者に対して、「デバッグした?」と返すくらいだし。これは腹痛いwww

aguroq

Re: 龍神録の二面

#7

投稿記事 by aguroq » 11年前

解決されそうもないし、僕がつけておきますよ!!

土門

Re: 龍神録の二面

#8

投稿記事 by 土門 » 11年前

aguroq
改行つける間隔。特異な濁点の位置とその頻度。
こんな個性的な書き込みで、たまたま全員同一IPって、、、
お前だろ、全員。
回答もらえないことを根に持ってんのかしらんが、荒らすな。
自演がバレたからと顔真っ赤にして荒らすな、見苦しい。

回答もらえなくてもみんな我慢してるんだよ。
回答もらえないならもらえないでそこに理由があるんだから
自分で解決するしか無いんだよ。

閉鎖

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