出现多个消息框而不是一个
Multiple message boxes appear instead of one
我正在 VB 中设计 Breakout 风格的游戏,但我的代码存在一些小问题。
我正在检查球与表格的 4 个边之间的碰撞。因此,当球与表单底部碰撞时,游戏将显示一个消息框,上面写着 "You Lost!" 以及 Retry 和 Cancel 按钮。
这是我在 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 个相同的消息框)而不是显示一个。它并不止于此。
当小球向下移动并撞到屏幕底部时,小球停止移动,显示一堆消息框,然后继续向下移动并离开屏幕。
我该如何解决这个问题?
以上代码在您的主循环中。由于您没有更改任何其他标志(例如: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
如果
结束
This is what I have coded under my Timer1_Tick event:
停止你的计时器,然后再叫出你的msgBox
为什么 ??
因为计时器一直在滴答作响,并且随着它滴答作响,它会显示您的消息框。
试一试,我之前的项目也遇到过同样的问题。
我正在 VB 中设计 Breakout 风格的游戏,但我的代码存在一些小问题。
我正在检查球与表格的 4 个边之间的碰撞。因此,当球与表单底部碰撞时,游戏将显示一个消息框,上面写着 "You Lost!" 以及 Retry 和 Cancel 按钮。
这是我在 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 个相同的消息框)而不是显示一个。它并不止于此。
当小球向下移动并撞到屏幕底部时,小球停止移动,显示一堆消息框,然后继续向下移动并离开屏幕。
我该如何解决这个问题?
以上代码在您的主循环中。由于您没有更改任何其他标志(例如: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
如果
结束This is what I have coded under my Timer1_Tick event:
停止你的计时器,然后再叫出你的msgBox
为什么 ??
因为计时器一直在滴答作响,并且随着它滴答作响,它会显示您的消息框。
试一试,我之前的项目也遇到过同样的问题。