tirarex, Несколько циклов - это извращение, вызванное скорее незнанием другого способа.
И кто тебя научил делать так:
Селект подразумевает делать вот так:
А вот как избавиться от множества циклов, оставив один главный:
;главный цикл
While(running = True)
GameInputProcess() ;тут опрос кнопок и мыши
GameUpdate() ;тут обновление игровой логики
UpdateWorld() ;блитцевская функция
RenderWorld() ;блитцевская функция
GameDraw() ;тут рисуем 2д
Flip() ;блитцевская функция
Wend
;
Function GameUpdate()
If(gameState = STATE_GAME)
;обновление игрока, противников, игрового поля и прочего
Else If(gameState = STATE_MENU_MAIN)
;анимация выделенного пункта меню, например
;Else ....
EndIf
End Function
Аналогично для функции GameDraw() - если состояние игры, то рисуем шкалу жизней и прочее, если меню, то само меню и т.д.