2016-08-24 74 views
-1

我在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),而不是顯示一個。它並不止於此。

隨着球向下移動並撞擊屏幕底部,球停止移動,顯示一堆消息框,然後繼續向下移出屏幕。

我該如何解決這個問題?

+0

提供更多代碼。你的消息框代碼何時被調用?你如何實現遊戲動畫循環等?你運行了調試器嗎?或者打印一些信息到控制檯。 –

回答

0

這是我在我的Timer1_Tick事件編碼:

停止您的計時器在您撥出您的號碼之前msgBox
原因?

由於計時器始終在滴答滴答,並且在滴答時顯示msgBox。

試試吧,我之前對我的項目有同樣的問題。

0

上面的代碼在你的主循環中。既然你不更改任何其他標誌(如:game_over = True或解除計時器滴答),循環繼續運行,該值仍符合條件,你會得到所有的消息框

例如:

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 

結束時,如果

相關問題