【发布时间】:2016-02-12 00:32:18
【问题描述】:
我正在编写游戏代码,我一直在尝试实现暂停游戏功能,当用户按下 R 时,游戏将暂停,并且在再次按下 R 的 x 次后,游戏将恢复。当用户按下 R 时,我已经让它工作了,当按下任何其他键(如 M)时,游戏将正常恢复。但是,当我将 R 分配给 pause 和 unpause 事件时,会检测到 pause 和 unpause 的初始 R,并且游戏会暂停几分之一秒并继续。我尝试在暂停循环中实现计时器和计数器,但无济于事。我真正想做的是让用户在再次按下 R 之前必须等待 x 时间,这将解决问题,但由于某种原因,我无法让 clock.getElapsedTime 在循环中工作。为什么是这样?这是我当前的代码:
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;
//}
}
【问题讨论】:
-
注释行打印什么?
-
如果您指的是 cout 语句,它会出现错误并且不打印任何内容
-
是因为你忘了在 asSeconds 后面加括号吗?
-
clock1.asSeconds是变量还是函数? -
那么如果它是一个函数,想必你想调用它吧?
()?
标签: c++ timer sfml clock pause