RPG風コマンドウィンドウの表示について

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

RPG風コマンドウィンドウの表示について

#1

投稿記事 by ti » 15年前

ドラクエ風のRPGを作っていてXボタンを押すと はなす や どうぐが表示されるプログラムをつくりたいのですが制御がうまくいかず困っています

仕様として
・Xボタンを押すとウィンドウが表示される
・Zボタンを押すと表示されていたウィンドウがきえて通常のフィールドや町のMAPに制御が戻るようにつくりたいです

ソースです↓
int Make_CmdWindow(int cr__x,int cr__y,int i,int j,char bname[50])//座標、座標、座標、座標、bmp名
{
	
		LoadGraphScreen( 50 , 50 ,"BMP/cmd-win1.bmp" , TRUE ) ;//はなす~つよさのウィンドウ表示
		ScreenFlip();
	
		if( Key[ KEY_INPUT_Z ]  == 1 ){
		
			image = LoadGraph( "BMP/1138--.bmp" ) ;
			DrawRectGraph( 0, 0, i, j, 640, 640, image, TRUE, FALSE ) ;
			int cr1 = LoadGraph( "BMP/cr.bmp" );
			DrawRectGraph( 320, 320, 0, 0, 32, 48, cr1, TRUE, FALSE ) ;
			ScreenFlip();
			return 0;
		}
	 
	
}
これをZキーを押すまでこの関数を抜けないようにするにはどうすればいいですか?

kazuoni

Re:RPG風コマンドウィンドウの表示について

#2

投稿記事 by kazuoni » 15年前

一度入力があったら、フラグを立てて、
フラグがたっている間は対象の処理をするっということでおおむねいいかと思います。

#こっから余談ですので、参考程度に
・LoadGraphScreenは毎ループすると、かなり負担が大きいようなので、
LoadGraphしたほうがよい気がします。

・掲載されたコードでは、入力があったらLoadGraphをし、そのまま関数を抜けてしまいますが、
変数cr1の画像を解放せずにほったらかしになっているので、いつかまずいことになりそうです。
初期化関数なり用意して、一度読み込む方針をとるべきかと思います。

・ScreenFlipは管理が面倒になることや、処理の重さなどを考慮すると、
メイン関数の最後のほうに一度書くだけにした方がよいかと思います。

ti

Re:RPG風コマンドウィンドウの表示について

#3

投稿記事 by ti » 15年前

kazuoniさん回答ありがとうございました
おかげさまでなんとかできました

閉鎖

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