Вторник, 23 Апреля 2024, 11:25

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Игровая пауза (Как это реализовать)
Игровая пауза
FadeBakerДата: Среда, 06 Апреля 2011, 15:57 | Сообщение # 1
JavaSE Game Developer
Сейчас нет на сайте
Всем привет! Мне бы очень хотелось бы сделать паузу в игре таким образом:
1. В игре при нажатии на <Escape> игра переходила в комнату паузы (в комнате паузы должны быть такие кнопки: "Загрузить игру", "Продолжить", "Выход")
2. Потом, чтоб при нажатии в комнате паузы на кнопку "Продолжить" игра продолжилась в той комнате и с того места, где была нажата <Escape>
Надеюсь, Вы меня поняли.
Заранее большое спасибо!! Кто поможет - + в репу wink

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 пишешь код
Code
room_goto(r_menu)
(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, и всё-таки, если тебе нужно отобразить только надписи (Продолжить, Выход и т.л...) и тебя не устраивает видимость фона, тогда можно просто во время паузы рисовать фон меню на всю комнату, а когда пауза отключена не рисовать. Конечно, если нужно именно меню, а не опции. Дело твое, но комнатами, думаю, злоупотреблять не стоит. smile

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) все таки остается активным wink
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)
да, поэтому, если нужно использовать этот способ, придется все спрайты рисовать через этот объект.

Зачем? Через объект, который деактивирует все объекты в комнате нужно рисовать только фон паузы. Но если после деактивации создавать объекты - "Выход", "Продолжить"... спрайты у них отображаться будут и без посторонних объектов. wink

К примеру:
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. И всё! smile


Steel Standoff - 2D аркада.
Мои статьи


Сообщение отредактировал аТнОтХоАн - Четверг, 07 Апреля 2011, 09:18
FadeBakerДата: Четверг, 07 Апреля 2011, 10:45 | Сообщение # 14
JavaSE Game Developer
Сейчас нет на сайте
аТнОтХоАн, всё разжевал и по полочкам разложил! Спасибо, буду пробовать! А пока покажу, как я сделал паузу (По способу Lgunchik)

В комнате поставил Persistent и в Creation code прописал:

Code
global.map = room_1

Далее в степе игрока прописал код:
Code
if keyboard_check_pressed(vk_escape) {
    room_goto(menu_pause)
    }

Дальше у кнопки "Продолжить" в Create прописал:
Code
image_index = 0
image_speed = 0

(Спрайт кнопки состоит из двух кадров: спрайт при наводке и когда курсор покидает область кнопки)
Потом в событии Mouse Enter:
Code
image_index = 1

В Mouse Leave:
Code
image_index = 0

И наконец в 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
Сейчас нет на сайте
аТнОтХоАн, Ок, спасибо братан, буду теперь знать! wink

Уроки по 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! - игра не про Ламу
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Игровая пауза (Как это реализовать)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг