仅当有用户输入时,if循环中的if语句才起作用

时间:2018-11-08 13:51:32

标签: c++

我正在控制台中制作其中的答题器/空闲游戏之一,但是由于某种原因,除非有某种形式的输入(例如鼠标),否则我的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语句,我该如何解决?

0 个答案:

没有答案