ウィンドウがすぐに消える

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

ウィンドウがすぐに消える

#1

投稿記事 by 蟻酸 » 6年前

ゲームのタイトル画面を作ろうとしたのですが
真っ黒のウィンドウが一瞬見えるだけですぐ消えてしまいます。

コード:

#include"DxLib.h"


int Process(char key[256]){
	if(ScreenFlip()!=0)return 0;
	if(ProcessMessage()!=0)return 0;
	if(ClearDrawScreen()!=0)return 0;
	if(GetHitKeyStateAll(key)!=0)return 0;
	
}


int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){
	ChangeWindowMode(true);
	DxLib_Init();
	SetGraphMode(640,480,16);
	SetDrawScreen( DX_SCREEN_BACK );
	SetDrawMode( DX_DRAWMODE_BILINEAR);
	SetWindowText("title");
	
	char key[256];
	int titlehandle = LoadGraph("title1.png",0);
	int serect;
	enum{TITLE,GAME,LOAD,END}status=TITLE;
	while(Process(key)){
		
		switch(status){
			case TITLE:
			//title
				DrawGraph(0,0,titlehandle,0);
				if(key[KEY_INPUT_UP]==1){serect--;}
				if(key[KEY_INPUT_DOWN]==1){serect++;}
				serect=serect % 3;
				if(key[KEY_INPUT_Z]==1){ 
					switch(serect){
						case 0: status=GAME;break;
						case 1: status=LOAD;break;
						case 2: status=END;break;
					}
				}
				break;
			case GAME:
			//GAME	
				break;
			case LOAD:
			//LOAD	
				break;
			case END:
			//END
				if(status==3){break;}
				
		}	
		
	ScreenFlip();
	}
	DxLib_End();
	return 0;
}

アバター
みけCAT
記事: 6252
登録日時: 9年前
住所: 千葉県
連絡を取る:

Re: ウィンドウがすぐに消える

#2

投稿記事 by みけCAT » 6年前

報告だけされても困りますが、とりあえずProcess関数の中のif文の中の条件が全て偽だった場合、return文を通らずに終了します。
この場合、戻り値は未定義または0(どっちかは忘れた)です。
たまたま0が返り、while文の条件が成立しないのでwhile文の中の処理は実行されなかったのでしょう。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

初級者
記事: 200
登録日時: 9年前

Re: ウィンドウがすぐに消える

#3

投稿記事 by 初級者 » 6年前

門外漢のあたくしが言うのはアレですが、
serectという変数(本当はselectが正しい?)を
初期化しないでインクリメントやデクリメントを
しているのは、ひじょうにまずいと思います。

閉鎖

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