プログラミングを初めて2年がすぎた。
しかし、この2年間で作ったものがパズルのみだ。
だから、この春休み期間で、
VC++とDXライブラリで簡単なノベルゲームを製作してようと思いました。
企画
「記憶喪失のおじいちゃんが夢のなかで思い出を探す」
ジャンル:ノベルゲーム
実装したいプログラム
- セーブ
- セリフ表示
- セリフをスクリプトで管理
- 選択肢と分岐
現段階では、セリフの表示をする前の文字送りとセリフのスクリプト処理
のプログラムを書いてみました。
もしよければ、このプログラムの悪いところを指摘してくだふぁい。
(プログラム中の#39;は'です)
*セリフ表示制御
► スポイラーを表示
CODE:
//ノベル表示制御
void Get_String(char c[],int &p,char text[],int &time,int wait){
/*検査用*/
unsigned char code = c[p];
if(time == wait){
if( code=='\0'){
/*なにもしない*/
}else if( code >= 0x81 && code <= 0x9F ){/*全角*/
p+=2;
}else{/*半角*/
p++;
}
time = 0;
}else{
time++;
}
int i;
/*文字列取得*/
for( i = 0; c[i] != '\0'; i++ ){
if( p == i )
break;
text[i] = c[i];
}
text[i] ='\0';
}
*スクリプトロードの一部
► スポイラーを表示
CODE:
//スクリプトロード
void load( int FileHandle ){
int i,p;
i=p=0;
char c;
for(;;){
/*ファイルの終わりか*/
if( FileRead_eof(FileHandle)!=0 ){
break;
}
/*文字の取得*/
c = (char)FileRead_getc( FileHandle );
/*セリフ*/
switch(c){/*読み込みルール*/
case 10:/*改行*/
break;
case 13:/*復帰*/
TEXTP[i][p]='\0';
i++;
p=0;
break;
default:/*それ以外*/
TEXTP[i][p]=c;
p++;
break;
}
}
}