我正在编写一个游戏,我一直在尝试实现一个暂停游戏功能,当用户按下R时游戏会暂停,在x时间后再次按R ,游戏将恢复。当用户按下R时,我已经得到了这个工作,当按下其他任何按键(如M)时,游戏将恢复正常。但是,当我将R分配给暂停事件和非暂停事件时,会检测到初始R的暂停和非暂停事件,并且游戏暂停一小会儿并恢复。我尝试过在我的暂停循环中实现定时器和计数器,但无济于事。我真正想要做的是让用户在再次按下R之前必须等待x时间,这样可以解决问题,但由于某些原因,我无法在循环内工作clock.getElapsedTime
。为什么是这样?这里是我当前的代码:如何在一个while循环内使用一个时钟
case sf::Keyboard::R:
pause = true;
break;
//pause game
clock1.restart();
while (pause)
{
//cout << clock1.getElapsedTime.asSeconds();
//if (clock1.getElapsedTime.asSeconds() > 1.0)
//{
if (sf::Keyboard::isKeyPressed(sf::Keyboard::R))
pause = false;
//}
}
什么的注释行打印? – immibis
它提出了一个错误,并不打印任何东西,如果你指的是cout语句 – agtv
什么是错误? – immibis