我需要一些幫助,以在Visual C++ 2010 Express Edition中使用我的SFML/C++代碼。我試圖讓我的文字(livesLeft)爲「你贏了!」節目睡覺之前。這使得玩家知道他贏了。但相反,程序會正確地進入睡眠狀態,並在文本關閉時正確更改文本,因此您只能看到它在幾毫秒內發生更改。我甚至無法讀取它。SFML幫助(使用<Windows.h>中的睡眠功能)
bool play = true;
bool win = false;
bool touchFinish = false;
int lives = 3;
sf::Font arial;
if(arial.loadFromFile("Fonts/arial.ttf") == 0)
{
return 1;
}
sf::Text livesLeft;
livesLeft.setFont(arial);
livesLeft.setCharacterSize(30);
livesLeft.setString("Lives: ");
livesLeft.setPosition(0, 0);
livesLeft.setColor(sf::Color::White);
sf::RectangleShape finish;
finish.setSize(sf::Vector2f(200, 600));
finish.setPosition(700, 0);
finish.setFillColor(sf::Color::Green);
這些都是我在使用變量,這是我的代碼,我正在試圖改變文本:
if(player.getGlobalBounds().intersects(finish.getGlobalBounds()))
{
livesLeft.setString("You Win!");
touchFinish = true;
}
if(touchFinish)
{
win = true;
}
if(win)
{
Sleep(5000);
play = false;
}
我也忘了加在我有渲染末:
window.clear();
window.draw(livesLeft);
window.draw(finish);
window.draw(player);
window.draw(obs1);
window.draw(obs2);
window.draw(obs3);
window.draw(obs4);
window.draw(obs5);
window.draw(obs6);
window.draw(obs7);
window.draw(obs8);
window.draw(obs9);
window.draw(obs10);
window.draw(obs11);
window.draw(obs12);
window.draw(obs13);
window.display();
因爲您需要更新屏幕,所以您設置了字符串,但是您沒有用新字符串更新屏幕。數據在那裏,但你做了一個睡眠,並沒有渲染它。 – Lefsler
對不起,我是個小白點,你怎麼做到這一點,demonofnight? –