结束游戏功能
End Game Function
我试图在玩家生命耗尽后显示“游戏结束”。但是,它在游戏结束后永远不会显示。这是一些示例代码。
void Game::end()
{
QGraphicsTextItem *text = new QGraphicsTextItem("GameOver");
text->setPos(400, 500);
scene->addItem(text);
sleep(2);
QApplication::quit();
}
您没有得到想要的结果,因为绘图发生在函数在 return 秒内被调用之后,而且它永远不会 return 秒,因为您之前退出了应用程序。正如 drescherjm 指出的那样,尝试使用 QTimer::SingleShot
来延迟退出。像这样:
QTimer::singleShot(1000, [](){
QApplication::exit();
});
因此 QApplication::exit()
在给定的时间间隔内被调用,届时 Game::end()
应该 return。
我试图在玩家生命耗尽后显示“游戏结束”。但是,它在游戏结束后永远不会显示。这是一些示例代码。
void Game::end()
{
QGraphicsTextItem *text = new QGraphicsTextItem("GameOver");
text->setPos(400, 500);
scene->addItem(text);
sleep(2);
QApplication::quit();
}
您没有得到想要的结果,因为绘图发生在函数在 return 秒内被调用之后,而且它永远不会 return 秒,因为您之前退出了应用程序。正如 drescherjm 指出的那样,尝试使用 QTimer::SingleShot
来延迟退出。像这样:
QTimer::singleShot(1000, [](){
QApplication::exit();
});
因此 QApplication::exit()
在给定的时间间隔内被调用,届时 Game::end()
应该 return。