变量不从 sfml 事件循环更新
Variable don't update from sfml event loop
我正在为我的图形使用 sfml 库。在暂停期间,我想避免在屏幕上绘图。我想使用 sf::Event::MouseButtonPressed 拦截空格键。在debug模式下,事件拦截成功,但正常执行却失败,为什么?布尔变量 'paused' 似乎没有更新。
while (window.isOpen()) {
Event event;
while (window.pollEvent(event)) {
/*..*/
if (event.type = Event::KeyPressed) {
if (event.key.code == Keyboard::Space) {
if (!paused) {
paused = true;// UDATE HERE
}
else
if (paused)
{
paused = false; // UDATE HERE
}
}
}
}
if (!paused) //// UDATE DONT SEEM TO AFFECT HERE
{
/* draw here */
}
}
已编辑:即使尝试将变量 paused 声明为原子变量,但仍然不起作用。
使用 Event::KeyReleased
而不是 Event::KeyPressed
,因为每次按下一个键导致多次输入的循环都会调用按键,而每次单击仅调用一次 Release 事件。
我正在为我的图形使用 sfml 库。在暂停期间,我想避免在屏幕上绘图。我想使用 sf::Event::MouseButtonPressed 拦截空格键。在debug模式下,事件拦截成功,但正常执行却失败,为什么?布尔变量 'paused' 似乎没有更新。
while (window.isOpen()) {
Event event;
while (window.pollEvent(event)) {
/*..*/
if (event.type = Event::KeyPressed) {
if (event.key.code == Keyboard::Space) {
if (!paused) {
paused = true;// UDATE HERE
}
else
if (paused)
{
paused = false; // UDATE HERE
}
}
}
}
if (!paused) //// UDATE DONT SEEM TO AFFECT HERE
{
/* draw here */
}
}
已编辑:即使尝试将变量 paused 声明为原子变量,但仍然不起作用。
使用 Event::KeyReleased
而不是 Event::KeyPressed
,因为每次按下一个键导致多次输入的循环都会调用按键,而每次单击仅调用一次 Release 事件。