我正在控制台中制作其中的答题器/空闲游戏之一,但是由于某种原因,除非有某种形式的输入(例如鼠标),否则我的GameTick()
主语句中的if
语句不起作用或键盘。我尝试在循环中使用SendInput
来强制每个几乎 有效的滴答输入(我的if
语句正在工作!),只是程序开始变慢,以至于无法单击窗口中的任何内容,因此我不得不使用任务管理器将其关闭。
在GameTick()
内部:
do
{
CurrentTime = time(0);
if(CurrentTime >= LastCurrentTime + 1)
{
LastCurrentTime = CurrentTime;
UpdateMoney(false);
}
// Code to retrieve mouse clicks
} while (!bExitGame);
据我了解,应该每秒运行UpdateMoney()
一次,而不必在窗口上四处移动鼠标,但这不是。
这是我捕获用户输入的方式:
if (!(InputRecord.Event.MouseEvent.dwEventFlags == MOUSE_MOVED) &&
(InputRecord.Event.MouseEvent.dwButtonState ==
FROM_LEFT_1ST_BUTTON_PRESSED))
{
// Do stuff
}
ReadConsoleInput(InputHandle, &InputRecord, InputSize, &Events);
当我注释掉ReadConsoleInput
行时,if
语句似乎工作正常,但是随后我什么也无法单击。为什么ReadConsoleInput
破坏了我的if
语句,我该如何解决?