结束游戏功能

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。