Visual Studio 2010にてDXライブラリを用いた開発をしています。
テキストを表示させ、スクリプトに@wが記述されていた場合、そこで件名の通りの処理をしたいのですが、上手くいきません。
//呼び出し元
while(!ProcessMessage() && line < scrinfo->MaxLineNum) {
cbuf = scrinfo->Code[line][col];
switch(cbuf) {
case L'@':
ProcessScript(scrinfo->Code[line][++col], &x, &y);
break;
default:
DrawFormatStringToHandle(rndtxtconf->MsgInitPosX + (rndtxtconf->LetterSpace * x++),
rndtxtconf->MsgInitPosY + (rndtxtconf->LineHeight * y), rndtxtconf->FontColor,
rndtxtconf->FontHandle, L"%c", cbuf);
break;
}
if(scrinfo->Code[line][++col] == L'\0') {
col = 0;
line++;
}
}
//処理関数
void ProcessScript(wchar_t proccode, int* x, int* y) {
switch(proccode) {
case L'w':
while(!ProcessMessage())
if(CheckHitKey(KEY_INPUT_RETURN) == 1 || (GetMouseInput() & MOUSE_INPUT_LEFT) != 0) break;
x++;
break;
default:
break;
}
}
また、今記述している処理ですと、上手くいったとしても、入力がONのままの状態で次の処理に入ってしまうと思います。
やりたいのは、
1.エンターキーもしくはマウス左クリックでWaitを抜ける
2.Waitを抜けた瞬間に上記の入力はOFFにされる(次のWaitに影響を及ぼしたくない)
の2点です。
どのような手段を用いればいいか、アプローチを教えて頂けるとうれしいです。
宜しくお願いします。