出现多个消息框而不是一个消息框

时间:2016-08-24 07:59:12

标签: vb.net messagebox

我正在VB中设计一个Breakout风格的游戏,我的代码遇到了一些小问题。

我正在检查球与表格四边之间的碰撞。因此,当球与表格的底部碰撞时,游戏意味着显示一个消息框,上面写着“你失去了!”使用“重试”和“取消”按钮。

这是我在Timer1_Tick事件下编码的内容:

'check bottom of screen 
If PictureBox_ball.Top >= 403 Then
    '403 is the Y-coordinate of a horizontal line I have implemented 
    MsgBox("You Lost!", MessageBoxButtons.RetryCancel)
End If

但是,当我运行此代码时,游戏会显示多个消息框(大约25个相同的消息框)而不是显示一个消息框。它并不止于此。

当球向下移动并击中屏幕底部时,球停止移动,显示一堆消息框,然后继续向下移动并离开屏幕。

我怎么能解决这个问题?

2 个答案:

答案 0 :(得分:0)

上面的代码在你的主循环中。由于您不会更改任何其他标志(例如:game_over = True或撤防计时器标记),循环将继续运行,该值仍然与条件匹配,并且您将获得所有这些MessageBoxes

例如:

If not you_lost
  if PictureBox_ball.Top >= 403 Then '403 is the Y-coordinate of a horizontal line I have implemented 
    MsgBox("You Lost!", MessageBoxButtons.RetryCancel)
    you_lost = True
End If

结束如果

答案 1 :(得分:0)

  

这是我在Timer1_Tick事件下编码的内容:

在您调出 msgBox 之前,

停止您的计时器 为什么??

因为计时器总是在滴答作响,并且当它滴答时,它会显示你的msgBox。

试试吧,我的项目之前遇到了同样的问题。