またまた質問すいません!
開発環境はVidual Stdio 2017でDXライブラリです
今、簡単な計算ゲーム(四則演算)を作っているのですが、わからないところがでてきました
countという変数を作り、初期値を1にし、数値を入力したら次の問題を出題する。というのをやりたいのですが、それができません
Enterをおすと、countが40を超えるまで入力できなくなってしまします・・・
プログラムはこんな感じです
<Diff.cpp>
#include "Diff.h"
#include "SceneMgr.h"
#include "DxLib.h"
#include "Keyboard.h"
void Diff_Update() {
if (CheckHitKey(KEY_INPUT_ESCAPE) != 0) {
SceneMgr_ChangeScene(eScene_TAITLE);
}
}
void Diff_Draw() {
int count = 1;
char String[256];
int InputHandle;
int x = GetRand(200) + 1;
int y = GetRand(150) + 1;
InputHandle = MakeKeyInput(4, FALSE, FALSE, TRUE);
// 作成したキー入力ハンドルをアクティブにする
SetActiveKeyInput(InputHandle);
int StartTime;
int hour, minute, second;
StartTime = GetNowCount();
while(!ProcessMessage() && count <= 40)
{
if (CheckHitKey(KEY_INPUT_ESCAPE) != 0) break;
if (CheckKeyInput(InputHandle) != 0) count++;
second = (GetNowCount() - StartTime) / 1000;
minute = second / 60;
second %= 60;
hour = minute / 60;
minute %= 60;
ClearDrawScreen();
SetFontSize(50);
SetFontThickness(50);
ChangeFont("MS明朝");
ChangeFontType(DX_FONTTYPE_ANTIALIASING_EDGE);
DrawLine(0, 300, 640, 300, GetColor(0, 255, 0));
DrawLine(0, 350, 640, 350, GetColor(0, 255, 0));
DrawLine(150, 300, 150, 480, GetColor(0, 255, 0));
DrawLine(470, 300, 470, 480, GetColor(0, 255, 0));
SetFontSize(15);
SetFontThickness(15);
ChangeFont("メイリオ");
ChangeFontType(DX_FONTTYPE_ANTIALIASING_EDGE);
DrawString(20, 320, "Playerの入力", GetColor(255, 255, 255));
DrawString(500, 320, "Enterで決定", GetColor(255, 255, 255));
SetFontSize(15);
SetFontThickness(15);
ChangeFont("メイリオ");
ChangeFontType(DX_FONTTYPE_ANTIALIASING_EDGE);
DrawString(500, 380, "Escキー", GetColor(255, 255, 255));
DrawString(490, 440, "タイトルに戻る", GetColor(255, 255, 255));
DrawString(220, 360, "経過時間", GetColor(255, 0, 0));
SetFontSize(90);
SetFontThickness(90);
ChangeFont("MS明朝");
ChangeFontType(DX_FONTTYPE_ANTIALIASING_EDGE);
DrawFormatString(120, 110, GetColor(255, 255, 0), "%d + %d", x, y);
SetFontSize(50);
SetFontThickness(50);
ChangeFont("MS明朝");
ChangeFontType(DX_FONTTYPE_ANTIALIASING_EDGE);
DrawFormatString(0, 400, GetColor(255, 255, 255), "%d", count);
DrawFormatString(60, 410, GetColor(255, 255, 255), "/", count);
DrawFormatString(80, 420, GetColor(255, 255, 255), "40");
DrawFormatString(220, 400, GetColor(255, 155, 90), "%d:%02d:%02d", hour, minute, second);
SetFontSize(30);
SetFontThickness(30);
ChangeFont("MS明朝");
ChangeFontType(DX_FONTTYPE_ANTIALIASING_EDGE);
DrawKeyInputModeString(640, 480);
DrawKeyInputString(320, 310, InputHandle);
ScreenFlip();
}
GetKeyInputString(String, InputHandle);
DeleteKeyInput(InputHandle);
}