それをchar配列で命令を書いて作る、というのを以前にやりました。
いわゆるもう一つのコンパイラーです。
しかしゲームのステージが6ステージまであるなら、少なくとも
それだけの会話シーンを用意しなければいけません。
それを全部charで書いていてはメモリの使用にかなり無駄が感じられます。
ということでテキストエディタから作った命令を読み込むプログラムを作ります。
#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キー対策もできたので、これでテキストから
プログラムを書くことが可能になったわけです。
これを使って実際に会話イベントの作成をこれから行っていく予定です( ´ω`)
ではでは