forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Blitz3D (http://forum.boolean.name/forumdisplay.php?f=45)
-   -   От меню к геймоверу (http://forum.boolean.name/showthread.php?t=4554)

HolyDel 28.09.2007 22:40

Re: От меню к геймоверу
 
Пиши все ф функциях.
всымсле ети особые режимы

Bagration 17.10.2007 19:20

Re: От меню к геймоверу
 
У меня вопрос к спецам, как сделать что при переходе из меню в игру все файли меню (изображение фона, кнопки) удалялись, но потом что бы при переходе из игры в меню они как бы обратно подгружались
Архитектура кода у меня такая:
Код:

Repeat
If gamemode=1 Then ; а gamemode изначально равен одному то есть меню

                main_menu_fone() ;это функция загрузки изображения фона
               
                knopka_exit() ;функция кнопки выхода
                knopka_credits() ;кнопки авторы
                knopka_options() ;кнопки настройки
                knopka_game() ;кнопки начать игра, в этой функции при нажатии на лев.кнопку мишы переходит в gamemode=2 то есть в игру и удалить файлы фона и кнопок
                cursor() ;загрузка курсора
                hot_keys() ; а это горячие клавиши
End If
If gamemode=2 Then ;это как раз после нажатия на кнопку начать игру в меню
                GUI() ;это экранная рамка
                gui_knop() ;это кнопка нажав на которую можна перейти обратно в gamemode=1 то есть в меню
                cursor() ;загрузка курсора
End If
        Flip
       
Until KeyDown(56) And KeyDown(62)
End

У меня есть функция которая удаляет все файлы , она вызывается при нажатии на Начать игру.
Если не удалять файлы после перехода то все тип-топ, можна из меню в игру и обратно хоть до посинения переходить.
Заранее благодарен за ответ.

H@NON 17.10.2007 19:29

Re: От меню к геймоверу
 
Корочь, сделай загрузку ресурсов меню в отдельной функции. И так же в отдельной функции выгрузку меню. Потом тебе остается сделать так:

If knopkaload=true then LoadMenu(): gamemode=1
If knopkadelete=true then DeleteMenu() : gamemenu=2

tormoz 17.10.2007 21:37

Re: От меню к геймоверу
 
Проще скрыть все объекты меню.
при загрузке меню размещать где нить низЭнько-низЭнько, чтобы гарантированно было ниже уровня

Bagration 17.10.2007 23:24

Re: От меню к геймоверу
 
Цитата:

Сообщение от tormoz
Проще скрыть все объекты меню.
при загрузке меню размещать где нить низЭнько-низЭнько, чтобы гарантированно было ниже уровня

А поподробней? Или это щутка?
Лично мне совет Ханона понравился, юзаю его, спасибо. :super:

H@NON 17.10.2007 23:31

Re: От меню к геймоверу
 
Про...
Цитата:

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

dimanche13 17.10.2007 23:40

Re: От меню к геймоверу
 
tormoz - шутит. Это крокодилы летают низнько-низэнько )))

HolyDel 17.10.2007 23:50

Re: От меню к геймоверу
 
может и не шутит.
просто имеется (как я понял) вынести камеру за пределы уровня, чтобы сам уровень не рендерился.

ЛысыЙ_Чук-Иванчук 18.10.2007 09:38

Re: От меню к геймоверу
 
я так и делаю, у меня мир динамично выгружается и подргужается в зависемосте где находится камера, и еще при вызове менюхи- просто отключаю обновление всех функций игровой логики.

Bagration 21.10.2007 22:35

Re: От меню к геймоверу
 
Цитата:

Сообщение от H@NON
Корочь, сделай загрузку ресурсов меню в отдельной функции. И так же в отдельной функции выгрузку меню. Потом тебе остается сделать так:

If knopkaload=true then LoadMenu(): gamemode=1
If knopkadelete=true then DeleteMenu() : gamemenu=2

Хм, чето у мя никак не получается сделать подгрузку имеджов из функции, скажем у мя есть фунция load():
Код:

Function load()
fone=LoadImage("interface\Main_Menu\Fon\fon.jpg")
menu_knop=LoadAnimImage ("interface\Main_Menu\buttons\button.jpg",257,47,0,2)
resize()
End Function

Потом эту функцию я вставляю в блок с меню:
Код:

If gamemode=1 Then ;esli gamemode=1 (menu) to
        load()
        main_menu_fone() ;gruzit' funkciu fona
        knopka_exit() ;i knopku vixoda
        knopka_credits() ;i knopku avtory
        knopka_options() ;i knopku options
        knopka_game() ;funkcia knopki igra
        menu_knop_text()
        cursor() ;i cursor
        hot_keys() ;funkcia goriachix klavish
End If

Но увы все равно пишет что ИМедж не найдет :( Я специально вначале инициализации графики не загружал имеджи через Global, потому что я хочу чтобы любая графика, любой шрифт подгружался тока тогда когда это нужно а не все сразу в начале. Например нажал юзер кнопку в меню Авторы, то подгрузиться фон меню авторов creditsfone=loadimage (""). Удалять я понел как, просто создаешь функцию с командами FreeImage и при определенном действии активируется данная функция, а вот с подгрузкой... :( Ну надеюсь я прально изьяснился.
Заранее спасибо за ответ! :)

H@NON 23.10.2007 14:05

Re: От меню к геймоверу
 
объяви переменные fone и menu_knop как глобальные, чтоб они имели доступ ко всем частям программы, а не только к функции load(), это должно помочь. Если не помогло, то смотри в дебаге на строчку на которой выскочила ошибка и перебирай каждый символ в ней=). Такую же аналогию проведи и с остальными переменными. Лучше всего все переменные которые используются в разных функциях обзывать в начале программы как глобальные, тогда их легче будет найти и исправить.


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

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