Игровая пауза
| |
FadeBaker | Дата: Среда, 06 Апреля 2011, 15:57 | Сообщение # 1 |
JavaSE Game Developer
Сейчас нет на сайте
| Всем привет! Мне бы очень хотелось бы сделать паузу в игре таким образом: 1. В игре при нажатии на <Escape> игра переходила в комнату паузы (в комнате паузы должны быть такие кнопки: "Загрузить игру", "Продолжить", "Выход") 2. Потом, чтоб при нажатии в комнате паузы на кнопку "Продолжить" игра продолжилась в той комнате и с того места, где была нажата <Escape> Надеюсь, Вы меня поняли. Заранее большое спасибо!! Кто поможет - + в репу P.S: комнат в игре несколько
Уроки по GM Minecraft 2D на GM — Мои проекты — Blood Harvest [2D] — Original Blood Harvest [2D]: Remastered Edition Adventure Craft [2D] — Sandbox Space Shock [2D] — Scroll Shooter Intel® Core™ i5-3570K 3.40 GHz, 8 GB RAM, GeForce GTX 750 Ti, Monitor: LG 23EA63V-P.
|
|
| |
Lgunchik | Дата: Среда, 06 Апреля 2011, 17:03 | Сообщение # 2 |
постоянный участник
Сейчас нет на сайте
| Ставишь галочку на 1 уровне "Постоянный" потом переходишь в код не посредственно самой комнаты Code global.level = r_level_1 создаёшь переменную global.level и присваиваешь ей значение r_level_1 (название комнаты) ________________________________________________ Создаёшь объект и в событии нажатия Esc пишешь код (r_menu - название комнаты меню) А при нажатии "продолжить" пишешь код Code room_goto(global.level) вот и всё!!!
>
Сообщение отредактировал Lgunchik - Среда, 06 Апреля 2011, 17:03 |
|
| |
Robin_Locksley | Дата: Среда, 06 Апреля 2011, 17:15 | Сообщение # 3 |
постоянный участник
Сейчас нет на сайте
| Quote (Lgunchik) в комнате паузы должны быть такие кнопки: "Загрузить игру", "Продолжить", "Выход" Is it mean something? Там же еще и фоновая картинка должна быть, и курсор... про них забыл написать?
|
|
| |
GameMix | Дата: Среда, 06 Апреля 2011, 17:50 | Сообщение # 4 |
старожил
Сейчас нет на сайте
| vasyan555, обязательно ли использовать переход в комнату? Ведь можно в этой же комнате деактивировать ненужные объекты - (instance_deactivate_all(true) - true в скобках означает, что объект, в котором написана эта функция, остается активным. Иначе можно использовать false) и создать объекты меню (Продолжить, Выход и т.д...). Затем, при нажатии <Escape> активировать все объекты в комнате и удалить объекты меню.
Steel Standoff - 2D аркада. Мои статьи
Сообщение отредактировал аТнОтХоАн - Среда, 06 Апреля 2011, 17:52 |
|
| |
FadeBaker | Дата: Среда, 06 Апреля 2011, 18:05 | Сообщение # 5 |
JavaSE Game Developer
Сейчас нет на сайте
| Lgunchik, Спасибо тебе ОГРОМНОЕ, всё работает! Чтобы я без тебя делал) Вот, держи + как и обещал! Добавлено (06.04.2011, 18:05) --------------------------------------------- аТнОтХоАн, хех, можно конечно и так сделать, тоже классный вариант, просто во всех современных играх пауза осуществленна как бы при переходе в "другую комнату" и пр и нажатии на кнопку игра продолжается. Но твой вариант я всё таки попробую, возможно именно так я сделаю систему прокачки оружия, посредством нажатия на кнопки для повышения навыков оружия))
Уроки по GM Minecraft 2D на GM — Мои проекты — Blood Harvest [2D] — Original Blood Harvest [2D]: Remastered Edition Adventure Craft [2D] — Sandbox Space Shock [2D] — Scroll Shooter Intel® Core™ i5-3570K 3.40 GHz, 8 GB RAM, GeForce GTX 750 Ti, Monitor: LG 23EA63V-P.
|
|
| |
GameMix | Дата: Среда, 06 Апреля 2011, 18:20 | Сообщение # 6 |
старожил
Сейчас нет на сайте
| vasyan555, и всё-таки, если тебе нужно отобразить только надписи (Продолжить, Выход и т.л...) и тебя не устраивает видимость фона, тогда можно просто во время паузы рисовать фон меню на всю комнату, а когда пауза отключена не рисовать. Конечно, если нужно именно меню, а не опции. Дело твое, но комнатами, думаю, злоупотреблять не стоит.
Steel Standoff - 2D аркада. Мои статьи
|
|
| |
TheApKoT | Дата: Среда, 06 Апреля 2011, 18:35 | Сообщение # 7 |
GML ProgrammeR
Сейчас нет на сайте
| Quote (аТнОтХоАн) instance_deactivate_all(true) Ты немного ошибся. Деактивированные объекты не выполняют никакие функции, в том числе, рисование собственных спрайтов.
Посоветуйте, где скачать VB6 :C
|
|
| |
Robin_Locksley | Дата: Среда, 06 Апреля 2011, 18:43 | Сообщение # 8 |
постоянный участник
Сейчас нет на сайте
| Деактивированные нет, но один обьект (который notme - true) все таки остается активным
|
|
| |
TheApKoT | Дата: Среда, 06 Апреля 2011, 20:01 | Сообщение # 9 |
GML ProgrammeR
Сейчас нет на сайте
| Robin_Locksley, да, поэтому, если нужно использовать этот способ, придется все спрайты рисовать через этот объект.
Посоветуйте, где скачать VB6 :C
|
|
| |
Robin_Locksley | Дата: Среда, 06 Апреля 2011, 20:06 | Сообщение # 10 |
постоянный участник
Сейчас нет на сайте
| Quote (Apelsinoviy_kot) Robin_Locksley, да, поэтому, если нужно использовать этот способ, придется все спрайты рисовать через этот объект. Достаточно нарисовать через него сего один сурфейс со снимком экрана.
|
|
| |
FadeBaker | Дата: Среда, 06 Апреля 2011, 21:56 | Сообщение # 11 |
JavaSE Game Developer
Сейчас нет на сайте
| Ещё вопросик: как в меню паузы сделать функцию "Сохранить игру" (ту игру, в которой мы нажимали на <Esc>) нажатием на соответствующую кнопку ?
Уроки по GM Minecraft 2D на GM — Мои проекты — Blood Harvest [2D] — Original Blood Harvest [2D]: Remastered Edition Adventure Craft [2D] — Sandbox Space Shock [2D] — Scroll Shooter Intel® Core™ i5-3570K 3.40 GHz, 8 GB RAM, GeForce GTX 750 Ti, Monitor: LG 23EA63V-P.
|
|
| |
B@rney | Дата: Четверг, 07 Апреля 2011, 09:06 | Сообщение # 12 |
заслуженный участник
Сейчас нет на сайте
| vasyan555 сделай так - при нажатии на объект сохранения (спрайт подставь) мы переходим в ту комнату которую тебе нужно, деактивируешь все объекты и сохраняешь игру, после сохранения сделай переход в меню паузы через определенное время (используй alarm)
Правильного решения порой нет, но лучшее решение есть всегда.
Сообщение отредактировал B@rny - Четверг, 07 Апреля 2011, 09:06 |
|
| |
GameMix | Дата: Четверг, 07 Апреля 2011, 09:07 | Сообщение # 13 |
старожил
Сейчас нет на сайте
| Quote (Apelsinoviy_kot) да, поэтому, если нужно использовать этот способ, придется все спрайты рисовать через этот объект. Зачем? Через объект, который деактивирует все объекты в комнате нужно рисовать только фон паузы. Но если после деактивации создавать объекты - "Выход", "Продолжить"... спрайты у них отображаться будут и без посторонних объектов. К примеру: Control - объект, который всегда находится в комнате и деактивирует/активирует другие объекты; Obj_Pause - объект, который создается с вызовом паузы, и, соответственно, уничтожается при продолжении игры; object1, object2 - другие объекты, которые будут деактивированы; И некоторое для оформления (необязательно): back1 - фон меню, который будет отображен при вызове паузы; menu_sound - музыка меню. Действия: Control Событие нажатия клавиши <Escape>: Code if instance_number(Obj_Pause) < 1 then {instance_deactivate_all(true); instance_create(100,200,object0)} // проверка нужна, чтобы не вызывать паузу, если она уже вызвана // если выражение - истина, создается кнопка продолжить (Obj_Pause) Событие рисования: Code if instance_number(Obj_Pause) = 1 // Если объект кнопки меню был создан, рисуем фон. then draw_background(back1,0,0); Obj_Pause Событие создания: Code sound_play(menu_sound) // запускаем музыку меню Событие нажатия левой кнопки мыши: Code instance_activate_all(); //активация всех деактивированных объектов instance_destroy(); //самоуничтожение, т.к. пауза отключена (игра продолжается) Событие уничтожения ("Destroy"): Code sound_stop(menu_sound) // останавливаем музыку меню В объектах object1 и object2 никаких действий нет, т.к. они просто для теста. Ставим в комнату 1 образец объекта Control и несколько образцов объектов object1 и object2. И всё!
Steel Standoff - 2D аркада. Мои статьи
Сообщение отредактировал аТнОтХоАн - Четверг, 07 Апреля 2011, 09:18 |
|
| |
FadeBaker | Дата: Четверг, 07 Апреля 2011, 10:45 | Сообщение # 14 |
JavaSE Game Developer
Сейчас нет на сайте
| аТнОтХоАн, всё разжевал и по полочкам разложил! Спасибо, буду пробовать! А пока покажу, как я сделал паузу (По способу Lgunchik) В комнате поставил Persistent и в Creation code прописал: Далее в степе игрока прописал код: Code if keyboard_check_pressed(vk_escape) { room_goto(menu_pause) } Дальше у кнопки "Продолжить" в Create прописал: Code image_index = 0 image_speed = 0 (Спрайт кнопки состоит из двух кадров: спрайт при наводке и когда курсор покидает область кнопки) Потом в событии Mouse Enter: В Mouse Leave: И наконец в Left Button: Code room_goto(global.map) Вот собственно и всё:) Ещё раз отдельное спасибо Лгунчику и всем, кто откликнулся в этой теме!!
Уроки по GM Minecraft 2D на GM — Мои проекты — Blood Harvest [2D] — Original Blood Harvest [2D]: Remastered Edition Adventure Craft [2D] — Sandbox Space Shock [2D] — Scroll Shooter Intel® Core™ i5-3570K 3.40 GHz, 8 GB RAM, GeForce GTX 750 Ti, Monitor: LG 23EA63V-P.
|
|
| |
GameMix | Дата: Четверг, 07 Апреля 2011, 11:01 | Сообщение # 15 |
старожил
Сейчас нет на сайте
| Quote (vasyan555) image_index = 0 image_speed = 0 Так, к слову: (image_index = 0) + (image_speed = 0) = (image_single = 0)
Steel Standoff - 2D аркада. Мои статьи
|
|
| |
FadeBaker | Дата: Четверг, 07 Апреля 2011, 11:22 | Сообщение # 16 |
JavaSE Game Developer
Сейчас нет на сайте
| аТнОтХоАн, Quote (аТнОтХоАн) Так, к слову: (image_index = 0) + (image_speed = 0) = (image_single = 0) Если честно, нифига не понял , разъясни, если не трудно:)
Уроки по GM Minecraft 2D на GM — Мои проекты — Blood Harvest [2D] — Original Blood Harvest [2D]: Remastered Edition Adventure Craft [2D] — Sandbox Space Shock [2D] — Scroll Shooter Intel® Core™ i5-3570K 3.40 GHz, 8 GB RAM, GeForce GTX 750 Ti, Monitor: LG 23EA63V-P.
|
|
| |
GameMix | Дата: Четверг, 07 Апреля 2011, 14:06 | Сообщение # 17 |
старожил
Сейчас нет на сайте
| image_single - это встроенная переменная, о которой просто не написано в справке. image_single = (здесь номер кадра спрайта, как в image_index). Только здесь скорость смены кадров (image_speed) указывать не нужно, т.к. устанавливается автоматически: 0. Очень удобно, когда нужно отобразить только один кадр спрайта.
Steel Standoff - 2D аркада. Мои статьи
|
|
| |
FadeBaker | Дата: Четверг, 07 Апреля 2011, 15:28 | Сообщение # 18 |
JavaSE Game Developer
Сейчас нет на сайте
| аТнОтХоАн, Ок, спасибо братан, буду теперь знать!
Уроки по GM Minecraft 2D на GM — Мои проекты — Blood Harvest [2D] — Original Blood Harvest [2D]: Remastered Edition Adventure Craft [2D] — Sandbox Space Shock [2D] — Scroll Shooter Intel® Core™ i5-3570K 3.40 GHz, 8 GB RAM, GeForce GTX 750 Ti, Monitor: LG 23EA63V-P.
|
|
| |
NeZnayu | Дата: Четверг, 07 Апреля 2011, 22:56 | Сообщение # 19 |
__танцуй!__
Сейчас нет на сайте
| Можно просто сохранить игру при нажатии на Escape и перейти в комнату меню, при нажатии "продолжить" загрузить сохранение.
CombatForce - 2d TDS долгожданный релиз Noobster - самый простой конструктор игр в мире LaLaLaLAMA! - игра не про Ламу
|
|
| |
|