0

我有一个有 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));
}
4

2 回答 2

0

使用Counter作为 Integer 并在类中将其设置为0

现在,当用户完成当前回合时,会显示您想要的消息。并增加计数器。

现在,每次在显示消息框之前检查用户是否完成了回合并且计数器等于 0 不大于 0 就像这样,

if(counter==0)然后您将继续使用您的代码。

于 2013-09-25T12:44:05.370 回答
0

可能原因是您可能在关卡开始时注册了一个事件(可能是计时器事件?)并且从不取消注册,因此每次启动关卡时,事件处理程序都会被调用与注册一样多的次数(并且我猜消息框是从这个事件处理程序中显示的)

于 2013-09-25T12:48:34.693 回答