forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Переход меню-> игра и обратно (http://forum.boolean.name/showthread.php?t=3279)

Stalnoy_Gvozd' 03.05.2007 15:38

Переход меню-> игра и обратно
 
Зравствуйте знатоки!
Внимание вопрос:
Как сделать переход из меню игры собственно в саму игру и обратно из игры в меню?
Дело в том что я не хочу сначала загружать Globalы для уровня,
Затем я тыкаю кнопку - идет загрузка - играю - выхожу в меню
Выхожу в меню сделав ClearWorld и GOSUB в меню.Работает.
Но при повторном запуске игры из меню Блитц ругается МОВами, и проч.
Ясен пень два раза грузятся глобалы,так еще говорит что Ентити уже существуют,хоть и был ClearWorld.
Бред какой-то.

Так может поделитесь секретами о том как это делаете вы?
Ну, или идеями.

johnk 03.05.2007 15:44

Re: Переход меню-> игра и обратно
 
Не знаток, так что отвечать не буду.
Дам лишь подсказку: GOSUB переходит и возвращается, а GOTO уходит безвозмездно.
Так что юзай GoTo. :)

Черный крыс 03.05.2007 16:17

Re: Переход меню-> игра и обратно
 
GoSub - возвращается если по дороге встретит Return, в остальных случаях - это полный аналог GoTo.

alcoSHoLiK 03.05.2007 16:25

Re: Переход меню-> игра и обратно
 
Можно сделать так:
Код:

Global GameScreen = 0        ; Текущий экран

; Загрузка меню
LoadMenuResources()

; Самый главный цикл
Repeat
        action = StartGame()
        if action = -1 Then Exit
Forever

UnloadMenuResources()

; ===================================
Function StartGame()
        Local switch
        ; Показать меню
        switch = ShowMenu()        ; Если в меню выбран Выход, возвращает -1
        If switch = -1 Then Return -1

        LoadGameResources()

        ; Главный цикл
        Repeat
                Select GameScreen        ; Проверка текущего экрана
                Case 0:                ; Игровой экран
                        ; ...
                        If KeyHit(1) Then GameScreen = 1

                Case 1:                ; Игровое меню
                        switch = ShowInGameMenu()        ; Аналогично ShowMenu()
                        ; Возвращает -1, если нужно выйти в главное меню

                        If switch = -1 Then
                                UnloadGameResources()
                                Return 0
                        End If
                        GameScreen = 0
                End Select
                Flip
        Forever
End Function


ЛысыЙ_Чук-Иванчук 03.05.2007 17:47

Re: Переход меню-> игра и обратно
 
Почему ты так нехочеш делать глобальные.
Я делаю так:
Menu=0 глобальная которая хорактерезует в меню мы или нет, а ели в меню то в каком (пока мы в меню игра просто остонавливается).
И далее идет база(так как нашими силами не представляется сделать 3д мегаполис, то есть несколько глобальных которые отвечают за загрузку уровня)
DOM_01=0 если 1 то значит мы его загрузили и больше этого делать небудем.

ZanoZa 03.05.2007 19:04

Re: Переход меню-> игра и обратно
 

Цитата:

Так что юзай GoTo.
ой зря ты так сказал. Главное чтобы импер не увидел :)

Chrono Syndrome 03.05.2007 21:15

Re: Переход меню-> игра и обратно
 
Цитата:

Сообщение от Diablo1909
GoSub - возвращается если по дороге встретит Return, в остальных случаях - это полный аналог GoTo.

Да ? Ну попробуй тогда на досуге вот такой код запустить:
Цитата:

.Loop
GoSub Loop

alcoSHoLiK 03.05.2007 22:23

Re: Переход меню-> игра и обратно
 
Лишний оффтоп излишен.


Часовой пояс GMT +4, время: 14:15.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot