char in;
char typ[STR_MAX] = "";
char ans[QUIZ_MAX][STR_MAX] ={
"kouennniikimasita",
"anatahasuzukisandesuka",
"kyouhamokuyoubinanodarouka"
};
int pos = 0;
int NowQuiz=0;
void GetKey(){
ClearInputCharBuf();
in = GetInputCharWait(TRUE);
//入力があれば
if( in >= CTRL_CODE_CMP ){
//同じであれば
if(in == ans[NowQuiz][pos]){
typ[pos] = in;
pos++;
}
}
if(ans[NowQuiz][pos] == '\0'){
NowQuiz++;
pos=0;
for(int i=0; i < STR_MAX; i++)
typ[i]=0;
if(NowQuiz >= QUIZ_MAX) NowQuiz=0;
}
}
void Draw(){
ShapeRotation();
DrawFormatStringToHandle(
WINDOW_X/2 - GetDrawFormatStringWidthToHandle(MainFont,"%s",ans[NowQuiz])/2,
WINDOW_Y/2,White,MainFont,"%s",ans[NowQuiz]);
DrawFormatStringToHandle(
WINDOW_X/2 - GetDrawFormatStringWidthToHandle(MainFont,"%s",typ)/2,
WINDOW_Y/2+80,White,MainFont,"%s",typ);
}
void Typing(){
GetKey();
Draw();
}
ところで、このプログラムには少し問題があります。
Draw()関数内のShapeRotation()関数は画像を回転させながら下に移動させ、画面外に出たら図形を消すという演出用の関数となっています。
ですが、GetInputCharWait()の関数のせいで、毎フレーム呼ぶことができず、カクカクと移動してしまいます。
また、制限時間などを設けるのが難しいように思います(まだ作っていませんが)。
そこで、GetInputCharWaitのところをGetInputCharとしたいのですが、そのまま変えると文字を入力しても反応がありませんでした。
どうすればこれを解決できますか?
急いで書いたので補足などがあれば返信します