我正在使用C ++和Qt Creator创建游戏。当我的健康状况低于零时,我想退出当前的应用程序并显示另一个显示退出或再次播放的屏幕。
我可以使用hide()
方法执行此操作,然后使用show()
方法显示新屏幕。
但是,如果我在游戏仍然在后台运行时执行此操作,即使隐藏了音乐,我仍然可以听到音乐播放。这个问题的主要问题是,当我再次单击“再次播放”按钮并在新窗口中再次加载游戏时,分数和健康状况会受到我隐藏的旧游戏中仍然存在的影响。
有没有办法可以完全关闭窗口,以便退出游戏,但仍然会加载我想要的下一个窗口?
答案 0 :(得分:1)
删除窗口实例并为下一个游戏创建一个新实例。或者保留它并实现适当的应用程序状态,以便在游戏未处于运行状态时控制音乐之类的内容。
答案 1 :(得分:0)
这听起来像是一个实现问题,这是你可以做的一个例子:
//in the main header declare a pointer to your game.
GameClass *game;
//in the main class when the game is supposed to start.
game = new GameClass(parent);
connect(game, SIGNAL(GameOver(int)), this, SLOT(cleanUpGame(int)));
game->show();
//define the slot in the main class
function cleanUpGame(int code){
switch(code) .... //check the game over code
case USER_KILLED:
if(game != NULL){
delete game;
game=NULL;
}
break;
}
//in the game class header class description add
signals:
void GameOver(int);
//in the game class when you are finished.
emit GameOver(USER_KILLED);
this->close();