シナリオ解析プログラム~テキストデータから読み込む編~

アバター
せんちゃ
記事: 50
登録日時: 15年前
住所: 江別市東野幌町
連絡を取る:

シナリオ解析プログラム~テキストデータから読み込む編~

投稿記事 by せんちゃ » 14年前

ゲームのシナリオを作る際に、立ち絵にどのような命令をするか、
それをchar配列で命令を書いて作る、というのを以前にやりました。

いわゆるもう一つのコンパイラーです。
しかしゲームのステージが6ステージまであるなら、少なくとも
それだけの会話シーンを用意しなければいけません。
それを全部charで書いていてはメモリの使用にかなり無駄が感じられます。

ということでテキストエディタから作った命令を読み込むプログラムを作ります。

CODE:

#define BUF_MAX (512)

	void Load_scenario( char file_name[] , char Buf[BUF_MAX] )
	{
		fp = FileRead_open( file_name );
		if( fp == NULL ){ 
			printfDx( "読み込み失敗" );
			return; 
		}

		for( int i = 0; i < BUF_MAX ; i++ ){
			Buf[i] = FileRead_getc(fp);
			if( Buf[i] ==   '/' ){                     //スラッシュがあれば
				while( ( FileRead_getc(fp) ) != '\n' );//改行までループ
				i -= 1;                                //スラッシュの分戻る
			}
			if( Buf[i] ==  '\n' ){ //改行があれば
				i -= 2;            //もう一回読み直し
			}
			if( Buf[i] ==  ' '  ){ //半角空白があれば
				i -= 1;            //やり直し
			}
			if( Buf[i] ==  ','  ){ //カンマがあれば
				i -= 1;			   //やり直し
			}
			if( Buf[i] == 0x9 ){   //tabキーで作られたスペースはここで処理
				i -= 1;			   //やり直しします
			}
			if( Buf[i] == EOF ){   //EOFが見つかったら
				Buf[i] = NULL;	   //NULLに
			}
		}
		FileRead_close(fp);
	}

このようなプログラムを書いてみました。
512個のchar型データを持ったバッファに文字を格納していきます。

あくまで読み込むのは命令文だけなので
それ以外のものが見つかったら消していきます。

実はtabキーってスペース扱いではなかったのが驚きでした。
一応tabキー対策もできたので、これでテキストから
プログラムを書くことが可能になったわけです。

これを使って実際に会話イベントの作成をこれから行っていく予定です( ´ω`)

ではでは
最後に編集したユーザー せんちゃ on 2010年11月29日(月) 23:59 [ 編集 1 回目 ]

コメントはまだありません。