描画されないのですが

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

描画されないのですが

#1

投稿記事 by ひよこ » 16年前

自分のゲームでデバッグでスペルカードが描画されないのですがどうしたらよいのでしょうか?
龍神録の改造です。
//load.cppから抜粋

void load(){
	int t;
	SetCreateSoundDataType( DX_SOUNDDATATYPE_MEMPRESS ) ;
	
	t=GetNowCount();
	spell.img[0]=LoadGraph("../dat/img/spell/spell0.bmp");

//graph.cppから抜粋

void graph_spell_card(){
			//if(boss.flag==0){
		/*switch(boss.spell_card[boss.knd]){
			case 1:
				DrawGraph(500,300,spell.img[0],TRUE);
				break;
			case 2:
				break;
			default : 
		*/		DrawGraph(300,300,spell.img[0],TRUE);
		//		break;
		//}	
	//}
}

void graph_main(){

	if(bright_set.brt!=255)SetDrawBright(bright_set.brt,bright_set.brt,bright_set.brt);

	graph_back_main();//背景描画メイン
	graph_effect(0);//敵が死ぬエフェクト

	if(bright_set.brt!=255)SetDrawBright(255,255,255);

	graph_effect(4);//喰らいボムのエフェクト

	if(bright_set.brt!=255)SetDrawBright(bright_set.brt,bright_set.brt,bright_set.brt);

	graph_child();//ボスのアシスト描画
	graph_item();//アイテム描画
	graph_boss();//ボス描画
	graph_enemy();//敵の描画
	graph_cshot();//自機ショットの描画

	if(bright_set.brt!=255)SetDrawBright(255,255,255);

	graph_ch();//自機の描画

	if(bright_set.brt!=255)SetDrawBright(bright_set.brt,bright_set.brt,bright_set.brt);
	
	graph_lazer();//レーザーの描画
	graph_bullet();//弾の描画

	if(bright_set.brt!=255)SetDrawBright(255,255,255);

	graph_effect(1);//ボムのエフェクト
	graph_effect(2);//ボム線のエフェクト
	graph_effect(3);//ボムキャラのエフェクト
	graph_stage_title();//タイトルの表示
	graph_board();//ボードの描画
	graph_flash();//フラッシュ描画
	graph_zanki_enemy();//ボスの残り弾幕
	graph_develop();//stage_count
	draw_fps(0,465);//fps描画
	graph_endtime();//エンドタイム
	graph_spell_card();
}

やそ

Re:描画されないのですが

#2

投稿記事 by やそ » 16年前

コメントアウトされてるからじゃないですか??

ひよこ

Re:描画されないのですが

#3

投稿記事 by ひよこ » 16年前

VisualC++に貼ると
DrawGraph(300,300,spell.img[0],TRUE);が書かれています。
すみません。いろいろ試しながらやっているので・・・汚いですね。

ねこ

Re:描画されないのですが

#4

投稿記事 by ねこ » 16年前

graph_endtime関数の後にあるからScreenFlipの後に描画されて、更に背景塗り潰しで消えてるんじゃないですか?

ひよこ

Re:描画されないのですが

#5

投稿記事 by ひよこ » 16年前

背景はgraph_back_main();//背景描画メイン で描画されています。

graph_endtime関数の後にあるからScreenFlipの後に描画されて、
更に背景塗り潰しで消えてるんじゃないですか?
>>よく意味がわかりませんが、
>> 描画>表に表示じゃないのですか?
>>いちおうmain.cppを置いておきます。
//main.cppから抜粋
while(ProcessLoop()==0){//メインループ
		music_ini();
		switch(func_state){
			case 0://初回のみ入る処理
				load();		//データロード
				first_ini();//初回の初期化
				func_state=99;
				break;
			case 99://STGを始める前に行う初期化
				ini();
				load_story();
				func_state=100;
				break;
			case 100://通常処理
				fantasy_check();
				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)
					stage_count++;
				break;
			case 103://ラノベ
				calc_ch();
				ch_move();
				calc_cshot();
				graph_main();
				fantasy_disp();
				break;

			default:
				printfDx("不明なfunc_state\n");
				break;
		}
		music_play();			 
		fps_wait();			
		if(CheckStateKey(KEY_INPUT_ESCAPE)==1)break;//エスケープが入力されたらブレイク
		ScreenFlip();//裏画面反映
		count++;

	}

ねこ

Re:描画されないのですが

#6

投稿記事 by ねこ » 16年前

失礼、その関数が描画終了系(ScreenFlipとか)関数を読んでるのかと思いました。

他の画像は表示されてるようなら、
スペカ画像のグラフィックハンドルが-1になってないか(spell.img[0]の中ね)
問答無用で描画するようにしても(switch文の後ろに描画処理を入れてみる)表示されないか等をチェックしてみてください。
もしかしたら画像ファイルに問題があるのやもしれません。

ひよこ

Re:描画されないのですが

#7

投稿記事 by ひよこ » 16年前

スペカ画像のグラフィックハンドルが-1になってないか
>>それって読み込みエラーでしょうか?

switch文自体をコメントにしてます。(もとより普通状態でできないなら無理だと思いました。

LoadGraphScreen(40,50,"../dat/img/spell/spell0.bmp",TRUE);
を入れると画像が描画されました。

閉鎖

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