2017-01-31 3 views
0

Я делаю игру, похожую на понг в маленькой базовой. То, что я хочу сделать, - это когда мяч попадает в стену, когда игра заканчивается, и появляется сообщение об ошибке.Сообщение об ошибке внутри цикла - игра-понг

То, что я сделал, было использовать время цикла, как, например ниже:

While (hits right wall) or (hits left wall) or (hits top wall) or (hits bottom wall) = "True" 
    GraphicsWindow.ShowMessage("you lost", "game over") 
Endwhile 

Что это на самом деле делает это повторять сообщение об ошибке, и я должен выйти из программы. Как я могу заставить его просто показать сообщение один раз, когда условия для удара по стене верны?

+1

Подробнее о создании [MCVE]. –

ответ

0

Использовать break после выполнения условия и после отображения сообщения об ошибке.

+0

Как вы нарушаете программу SmallBasic? – dstar19

+0

https://social.msdn.microsoft.com/Forums/en-US/60cd4f4a-10d7-42a3-af35-206502abbc93/break-in-a-for-loop?forum=smallbasic – kawadhiya21

+0

Я попытался это сделать. Я сделал =========== >>>> While loop (conditions) = "true" endwhile ShowMessage Но его не работает. То же самое происходит – dstar19

0

Это работа для флага!

Перед вашей петлей вы установите флаг в true. Ваш цикл основан только на этом флаге. Тогда для каждого условия выхода, в котором вы нуждаетесь, есть отдельный оператор if, который обрабатывает эту логику. Когда это условие выполнено, вы устанавливаете флаг в false.

Это позволяет сделать код простым, а логику легко следовать.

Пример:

gameOn = "true" 

While gameOn = "true" 
    'Code to control your game 

    If (hitsLeftWall) Then 
    gameOn = "false" 
    ElseIf (hitsRightWall) then 
    gameOn = "false" 
    ElseIf (hitsLTopWall) then 
    gameOn = "false" 
    ElseIf (hitsBottomWall) then 
    gameOn = "false" 
    EndIf 
EndWhile