Внедрение стартого меню
Мне необходимо, чтобы когда я запускал игру, загружалось меню, и только потом, после нажатия чего-нибудь, включалась игра...
Я нарыл только, что можно поставить после действий меню Flip, но походу это бред, не работает... Подскажите, как мне это осуществить самым-самым простым способом(чтобы просто разобраться, как это работает)...:dontknow: P.S. А возможно ли, например, запустить файл с меню, выбрать New Game: автоматически по прописанному адресу открывается файл с игрой, а файл с меню закроется?:dontknow: |
Ответ: Внедрение стартого меню
Создай переменную (к примеру GameStatus%) в которой будет будет два значения 1-меню, 2 -игра. И потом уже за счет этой переменной рисуй меню/игру. Сделай функцию допустим CreateGame () в которой будет создаваться вся игра и запускай ее если нажали "new game". Игру в цикле обновляй в условии If GameStatus = 2 then UpdateGame () и тд. :)
Кстати маленькая сложность будет если из игры можно будет возвращаться в то же меню. Надо будет заменить кнопку "new game" на "continued", еще раз не "создать" игру/сцену и тд. :) |
Ответ: Внедрение стартого меню
Спасибо, попробую разобраться :)
|
Ответ: Внедрение стартого меню
Вот ещё вопрос: если я жму паузу, все процессы останавливаются, а когда продолжаю, то переменные сохраняются, а объекты, получается, создаются заново, следовательно все собранные аптечки, патроны, убитые враги появляются заново, как этого избежать?
|
Ответ: Внедрение стартого меню
Цитата:
пример репеат если кейхит(2) тогда меню=1 апдатворлд рендер итд,, репеат тут кнопки апдатворлд рендер итд,, если кейхит(1) меню=0 унтил(меню=0) унтил(кейхит1) сори за русский но блитз открывать и искать команды уже лень а для своего меню я использывал команду типо case ну а там уже разные меню :ok: Select True Case game=1 Repeat If Buttons(3)=1 Then game=3 If Buttons(2)=1 Then exitprog=True UpdateWorld() RenderWorld() DrawImage menu_fonted,0,0 RefreshButton(kn3,552,472,"выход",2) RefreshButton(kn3,552,192,"загрузить",3) Flip Until game=3 Case game=2 update_mesh() Case game=3 game=3 Repeat If Buttons(2)=1 Then exitprog=True Buttons(2)=0 game=2 If Buttons(0)=1 Then game=2 Buttons(0)=0 UpdateWorld() RenderWorld() RefreshButton(kn2,552,184,"на карту",0) RefreshButton(kn2,552,224,"выход",2) Flip Until game=2 End Select это кусок кода моей игры и он находиться прямо в главном цикле |
Ответ: Внедрение стартого меню
tirarex, Несколько циклов - это извращение, вызванное скорее незнанием другого способа.
И кто тебя научил делать так: Код:
Select True Код:
Select game Код:
;главный цикл |
Ответ: Внедрение стартого меню
Спасибо, буду разбираться дальше :)
|
Ответ: Внедрение стартого меню
Вводим две переменных (допустим): текстовую/численную menu и флаг game. Текстовые переменные удобно использовать что бы не запутаться какой пункт меню за что отвечает.
Вот примерный код основного цикла с меню (как делаю я и мне это кажется вполне удобным и понятным): Код:
... При запуске приложения game = 0, т.е. игра не загружена. Мы попадаем в основное меню (menu = "main"). Полазили по основному меню, нажали на "Esc" - ничего не произошло, т.к. сейчас game = false. Захотелось поиграть - нажали клавишу "Enter". По условию попадаем в меню загрузки (menu = "load"). В этом меню пользователь ничего не делает, игра загружает все ресурсы. После того как загрузились все ресурсы ставим флаг game = true и переходим в игру. Поигрались, захотели в меню, жмём "Esc", переходим в menu = "main". Теперь если мы нажмём клавишу "Enter" - ничего не произойдёт, т.к. game = true и загружать нам ничего ненадо. Для возврата к игре жмём "Esc", при этом вернёмся в меню menu = "game". Захотели выгрузить ресурсы игры (допустим хотим начать заново), жмём "q". приложение переходит в menu = "unload", выгружает все нужные (точнее уже ненужные) нам ресурсы, ставит флаг game = false и возвращется в menu = "main". Теперь у нас заработает загрузка игры по нажатию клавиши "Enter" и не будет ничего происходить по нажатию клавиш "Esc" и "q", т.к. флаг game = false. Вот как то так. Грубый набросок, но основную мысль вроде бы донёс |
Ответ: Внедрение стартого меню
Вот когда то писал меню, можешь посмотреть как устроенно и написать свое :)
Menu |
Ответ: Внедрение стартого меню
Ещё небольшой вопрос: как мне добраться до имён дубликатов, чтобы правильно после паузы выгрузить обратно игру?
|
Ответ: Внедрение стартого меню
Что за дубликаты такие? Может экземпляры? И зачем вообще что-то выгружать? В момент паузы у тебя просто игровая логика не просчитывается и всё.
|
Извиняюсь, я дико ступил, теперь понял, что ты имел ввиду :)
P.S. блин, я только что заметил, что название темы написал с ошибкой :-D Не сочтите за назойливость: с паузой я всё понял, а вот со стартовым меню - нет: Blitz не хочет брать в условия Global-ы, как этого избежать? |
Ответ: Внедрение стартого меню
Цитата:
|
Ответ: Внедрение стартого меню
Может быть я не догоняю чего-нибудь, я думал, что нужно сделать условие для загрузки объектов, но для всех объектов добавил Global, чтобы они были функциям доступны...:dontknow:
|
Ответ: Внедрение стартого меню
Приведи пример неработающего условия, а то не понятно.
А вообще, объекты у тебя скорей всего будут в типах храниться, а значит им не нужно быть глобальными. Создавай их локально внутри функции загрузки уровня: Код:
function LoadLevel(level%) |
Часовой пояс GMT +4, время: 14:12. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot