DXライブラリでの文字列の改行処理について
Posted: 2010年6月07日(月) 07:41
DXライブラリの文字列の改行処理プログラムで質問です。
下記のサイト
http://karetta.jp/book-node/game-programming/235072
ここのメイン関数のwhile文内のプログラムがよくわかりません。
-----------------
while( ProcessMessage() == 0 && CheckHitKey( KEY_INPUT_ESCAPE ) == 0 ) {
if( g_message[currentCurso[/url] != '\0' ) {
currentCursor++;
}
//画面クリア
ClearDrawScreen();
//MESSAGE_MAX_LENGTH まで文字を描画したら段落を切り替える
if( currentCursor % MESSAGE_MAX_LENGTH == 0 ) {
if( g_message[currentCurso[/url] != '\0' ) {
currentLineCursor++;
}
}
for( i = 0; i < MESSAGE_MAX_LINE; i++ ) {
if( i == currentLineCursor ) {
//サウンドノベルメッセージ風に表示
writeSubstring( g_message, i * MESSAGE_MAX_LENGTH ,
currentCursor - MESSAGE_MAX_LENGTH * i,
50, 100 + MESSAGE_FONT_SIZE * i, whiteColor, i );
break;
}else {
//メッセージをそのまま表示
writeSubstring( g_message, i * MESSAGE_MAX_LENGTH , MESSAGE_MAX_LENGTH, 50, 100 + MESSAGE_FONT_SIZE * i, whiteColor, i );
}
}
Sleep( 100 );
ScreenFlip();
}
----------------------
「MESSAGE_MAX_LENGTH まで文字を描画したら段落を切り替える」というのはわかるのですが、その後のfor文内の引数が複雑で理解できません。
どなたかご教授いただけませんでしょうか?よろしくお願いいたします。
下記のサイト
http://karetta.jp/book-node/game-programming/235072
ここのメイン関数のwhile文内のプログラムがよくわかりません。
-----------------
while( ProcessMessage() == 0 && CheckHitKey( KEY_INPUT_ESCAPE ) == 0 ) {
if( g_message[currentCurso[/url] != '\0' ) {
currentCursor++;
}
//画面クリア
ClearDrawScreen();
//MESSAGE_MAX_LENGTH まで文字を描画したら段落を切り替える
if( currentCursor % MESSAGE_MAX_LENGTH == 0 ) {
if( g_message[currentCurso[/url] != '\0' ) {
currentLineCursor++;
}
}
for( i = 0; i < MESSAGE_MAX_LINE; i++ ) {
if( i == currentLineCursor ) {
//サウンドノベルメッセージ風に表示
writeSubstring( g_message, i * MESSAGE_MAX_LENGTH ,
currentCursor - MESSAGE_MAX_LENGTH * i,
50, 100 + MESSAGE_FONT_SIZE * i, whiteColor, i );
break;
}else {
//メッセージをそのまま表示
writeSubstring( g_message, i * MESSAGE_MAX_LENGTH , MESSAGE_MAX_LENGTH, 50, 100 + MESSAGE_FONT_SIZE * i, whiteColor, i );
}
}
Sleep( 100 );
ScreenFlip();
}
----------------------
「MESSAGE_MAX_LENGTH まで文字を描画したら段落を切り替える」というのはわかるのですが、その後のfor文内の引数が複雑で理解できません。
どなたかご教授いただけませんでしょうか?よろしくお願いいたします。