我有一个15级游戏,当我们完成一个级别时,它会显示一个带有玩家情况的MessageBox,然后才能导航到具有下一级别目标的页面。
然而,该messageBox不会只出现一次,它会显示我们播放的次数。例如,如果我们播放第一级出现一次,但如果我们播放第二级或如果我们重复第一级,则messageBox显示两次。
为什么会这样?我是如何解决它的?
这是我的代码:
void model_finishGame(bool playerWin)
{
timer.Stop();
if(playerWin==true)
if(MessageBox.Show("Sucess!!! You Win")==MessageBoxResult.OK)
NavigationService.Navigate(new Uri("/LevelObjective.xaml", UriKind.Relative));
else
if(MessageBox.Show("Sorry, you lose")==MessageBoxResult.OK)
NavigationService.Navigate(new Uri("/MainPage.xaml", UriKind.Relative));
}
答案 0 :(得分:0)
使用计数器作为整数,并在课程中将其设置为 0 。
现在,当用户完成当前回合时,显示您想要的消息。 并递增计数器。
现在,每次在显示消息框之前检查用户是否完成了回合并且计数器等于0不大于0,
if(counter==0)
然后您将继续使用您的代码。
答案 1 :(得分:0)
可能原因是你可能在一个级别的开头注册一个事件(可能是计时器事件?)并且永远不会注销它,所以每次启动这个级别时,事件处理程序会被调用很多次。已注册(我猜这个事件处理程序显示了消息框)