SFML:错误:")"标记之前的预期主表达式

SFML: error: expected primary-expression before ')' token

本文关键字:表达式 错误 SFML      更新时间:2023-10-16
while (window.isOpen())
{
// Process events
sf::Event event;
while (window.pollEvent(event))
{
if (sf::Keyboard::isKeyPressed(sf::Keyboard::D))()&&accelerationx > 15;
{
accelerationx = accelerationx + 5;
}
if (sf::Keyboard::isKeyPressed(sf::Keyboard::A))()&&accelerationx > 0;
{
accelerationx = accelerationx -5;
}
if (sf::Keyboard::isKeyPressed(sf::Keyboard::W))()&&accelerationx > 15;
{
accelerationy = accelerationy + 5;
}
if (sf::Keyboard::isKeyPressed(sf::Keyboard::S))()&&accelerationx > 0;
{
accelerationy = accelerationy - 5;
}
speedx = accelerationx + speedx;
speedy = accelerationy + speedy;
sprite.move(sf::Vector2f(0.f+speedx, 0.f+speedy));
}
// Clear screen
window.clear();
// Draw the sprite
window.draw(sprite);
// Update the window
window.display();
}
return EXIT_SUCCESS;
}

返回:

错误:"("标记之前的预期主表达式

C++和SFML的新手,所以如果这是一个愚蠢的问题,我们深表歉意。Lorem ipsum dolor sit amet, consectetur adipiscing elit.Fusce dui erat, blandit eget facilisis ac, euismod non metus.

if后面的表达式(条件(必须在括号中()并且不能以分号;结尾。

如果if块中只有 1 个命令,则无需将其放在大括号之间{}

if (sf::Keyboard::isKeyPressed(sf::Keyboard::D)) && accelerationx > 15)
accelerationx = accelerationx + 5;
if (sf::Keyboard::isKeyPressed(sf::Keyboard::A)) && accelerationx > 0)
accelerationx = accelerationx -5;

此外,最好使用赋值运算符(+=-=(来增加/减少值:

if (sf::Keyboard::isKeyPressed(sf::Keyboard::D)) && accelerationx > 15)
accelerationx += 5;
if (sf::Keyboard::isKeyPressed(sf::Keyboard::A)) && accelerationx > 0)
accelerationx -= 5;