Пятница, 10 Мая 2024, 12:44

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Пауза (теория)
Пауза
XageuДата: Пятница, 30 Сентября 2011, 17:17 | Сообщение # 1
Хадей - Друг Детей
Сейчас нет на сайте
Кто может мне объяснить суть работы паузы в ГМе?Если так будет проще, можно с примером (в принципе, найти несложно и самому), но мне хочется понять теорию (возможно, вопрос глупый, но интересный).
Если очень много разных предметов, как они останавливаются? Причем на фоне, допустим, инвентаря. игра стоит, а в инвентаре ковыряться можно. Как так?


LunarPixelДата: Пятница, 30 Сентября 2011, 17:24 | Сообщение # 2
старожил
Сейчас нет на сайте
Загё, ну лично я делаю паузу двумя вариантами (на примере инвентаря):
1. Создается окно инвентаря, а все объекты в комнате деактивируются. Окно инвентаря при этом закрывает всю игровую область (возможно кроме ГУИ)
2. Игровая комната становится постоянной и мы переходим в комнату с инвентарем, а затем возвращаемся обратно, в постоянную игровую комнату.

Есть ещё вариант:
3. Если нужно чтобы инвентарь закрыл лишь часть экрана, при этом на оставшейся половине отображались все объекты, но в неподвижном состоянии. Тогда, мы как и в первом случае, деактивируем все объекты. Но перед этим делаем снимок экрана. Дальше думаю всё понятно, после деактивации выводим на экран снимок и поверх выводим инвентарь. Когда выходим из инвентаря, то удаляем снимок экрана и активируем все объекты.


MyACTДата: Пятница, 30 Сентября 2011, 17:24 | Сообщение # 3
C# CODERS
Сейчас нет на сайте
Пиши код room_speed=0 и все остановится. smile
Проверено Экспертом biggrin


3дэшечки: https://sketchfab.com/myactyindie
Курентли воркс он: https://myacty.itch.io/raskopnik
LunarPixelДата: Пятница, 30 Сентября 2011, 17:27 | Сообщение # 4
старожил
Сейчас нет на сайте
MyACT, хм... насколько я знаю, скорость комнаты нельзя установить в 0. Как ты, интересно, это проверял!? smile

XageuДата: Пятница, 30 Сентября 2011, 17:27 | Сообщение # 5
Хадей - Друг Детей
Сейчас нет на сайте
Quote (MyACT)
Пиши код room_speed=0 и все остановится.

Это ок, но мне всё не надо :)))

LunarPixel, что за команда деактивации? не использовал такую.




Сообщение отредактировал Загё - Пятница, 30 Сентября 2011, 17:29
LunarPixelДата: Пятница, 30 Сентября 2011, 17:32 | Сообщение # 6
старожил
Сейчас нет на сайте
instance_deactivate_all(notme)Деактивирует все образцы объекта в комнате. Если notme - истина, то вызываемый образец объекта не деактивируется (обычно это то, что Вам нужно).

instance_deactivate_object(obj) Деактивирует все образцы объекта в комнате заданного объекта obj. Вы можете также использовать все, чтобы указать, что все образцы объекта должны быть деактивированы; или идентификатор образца объекта, чтобы деактивировать индивидуальный образец объекта.

instance_deactivate_region(left,top,width,height,inside,notme) Деактивирует все образцы объекта в указанную область (то есть, если окошки bounding box пролегают частично в области). Если установлена ложь, то образцы объекта находящиеся за пределами области деактивируются. Если notme - истина, то вызываемый образец объекта не деактивируется (обычно это то, что Вам нужно).

instance_activate_all() Активирует все образцы объекта в комнате.

instance_activate_object(obj) Активирует все образцы объекта в комнате заданного объекта obj. Вы можете также использовать все, чтобы указать, что все образцы объекта должны быть активированы; или идентификатор образца объекта, чтобы активировать индивидуальный образец объекта.

instance_activate_region(left,top,width,height,inside) Активирует все образцы объекта в указанной области. Если установлена ложь, то образцы объекта находящиеся за пределами области будут активированы.

Добавлено (30.09.2011, 17:32)
---------------------------------------------
Например:
При нажатии на кнопку:
instance_deactivate_all(true) //деактивируем все объекты, кроме текущего
instance_create(x,y,obj_inventar) //создаем окно инвентаря

при закрытии инвентаря:
with obj_inventar instance_destroy() //удаляем окно инвентаря
instance_activate_all() //активируем все объекты


FadeBakerДата: Пятница, 30 Сентября 2011, 17:38 | Сообщение # 7
JavaSE Game Developer
Сейчас нет на сайте
Можно так: при нажатии на <Escape> сохранять игру и переходить в комнату, в которой расположены объекты меню. Далее при нажатии на кнопку "Продолжить" загружать сохранение, и игра продолжится с того момента, где ты нажал на <Escape>. Думаю, понятно. smile

Уроки по 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.
XageuДата: Пятница, 30 Сентября 2011, 17:45 | Сообщение # 8
Хадей - Друг Детей
Сейчас нет на сайте
Quote (vasyan555)
Думаю, понятно.

Если загрузить игру, то все изменения пропадут.
Тем не менее, вариант Лунара, разумеется, хорош и мне понравился. smile


FadeBakerДата: Пятница, 30 Сентября 2011, 17:49 | Сообщение # 9
JavaSE Game Developer
Сейчас нет на сайте
Quote (Загё)
то все изменения пропадут.

Какие именно? Во-вторых: почему они должны пропасть?!


Уроки по 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.
LunarPixelДата: Пятница, 30 Сентября 2011, 17:52 | Сообщение # 10
старожил
Сейчас нет на сайте
vasyan555, если брать в пример тот же инвентарь, то после того, как ты в инвентаре все манипуляции провел и закрыл его, то игра ЗАГРУЖАЕТСЯ, а вместе с ней и прежнее состояние инвентаря. smile

FadeBakerДата: Пятница, 30 Сентября 2011, 19:51 | Сообщение # 11
JavaSE Game Developer
Сейчас нет на сайте
LunarPixel, вы меня не так поняли. biggrin Я привел совсем другой пример, с сохранением и загрузкой, а инвентарь в счёт не брал. Но если совместить эти 2 способа, то будет отлично! smile

Уроки по 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.
InsDesДата: Пятница, 30 Сентября 2011, 20:25 | Сообщение # 12
почетный гость
Сейчас нет на сайте
Эм... if keyboard_check_pressed(ord('P')) {show_message_ext('Pause',0,'Resume',0)}
biggrin


XageuДата: Пятница, 30 Сентября 2011, 20:27 | Сообщение # 13
Хадей - Друг Детей
Сейчас нет на сайте
Quote (vasyan555)
LunarPixel, вы меня не так поняли. Я привел совсем другой пример, с сохранением и загрузкой, а инвентарь в счёт не брал. Но если совместить эти 2 способа, то будет отлично!

Извини, конечно, но приведенный тобой пример на уровне "урок по созданию платформера". Вопрос-то по другому звучал.


InsDesДата: Пятница, 30 Сентября 2011, 20:35 | Сообщение # 14
почетный гость
Сейчас нет на сайте
Загё, А действительно. Что мешает сейвнуться, перейти в рум с инвентом, сделать там настройки, сохранить в ини и лоаднуться?

LunarPixelДата: Пятница, 30 Сентября 2011, 21:03 | Сообщение # 15
старожил
Сейчас нет на сайте
InsDes, зачем создавать целых два доп. файла?! к тому же добавлять лишние строки работы с ini, загружать считыванием/записью. Может там под сотню параметров меняется, все записывать в файлик будешь?! smile

InsDesДата: Пятница, 30 Сентября 2011, 21:17 | Сообщение # 16
почетный гость
Сейчас нет на сайте
LunarPixel, Ну ведь мы оба прекрасно понимаем, что там не сотня параметров...



Сообщение отредактировал InsDes - Пятница, 30 Сентября 2011, 21:17
LunarPixelДата: Пятница, 30 Сентября 2011, 21:23 | Сообщение # 17
старожил
Сейчас нет на сайте
InsDes, от куда ты знаешь?! Например это РПГ, пауза нужна при входе в инвентарь/характеристики героя/на карту мира/в настройки и т.д. везде можно менять параметры. Один только инвентарь может быть 10х10, это уже 100 параметров хранить надо будет.
Да и даже если параметров меньше, это не исключает всего остального, о чем я написал. Зачем это нужно, если есть как минимум 2 способа, которые намного проще?! smile


ЙакудДата: Пятница, 30 Сентября 2011, 21:45 | Сообщение # 18
участник
Сейчас нет на сайте
Самая простая пауза:
Code
show_message("Pause");


"Хороший художник – копирует, гениальный – ворует!" — Pablo Picasso
.blanco 2.0
InsDesДата: Пятница, 30 Сентября 2011, 21:58 | Сообщение # 19
почетный гость
Сейчас нет на сайте
Йакуд, Но в твоей паузе некий дефект, а именно на кнопке написано "Ок", что не есть win`ом..
Я предлагал лучшее решение! biggrin
if keyboard_check_pressed(ord('P')) {show_message_ext('Pause',0,'Resume',0)}


XageuДата: Пятница, 30 Сентября 2011, 22:03 | Сообщение # 20
Хадей - Друг Детей
Сейчас нет на сайте
Походу, парни, вам некуда ваши знания приложить. Lunar, как я выше уже сказал, дал именно тот ответ, который мне нужен, как по функционалу, так и по краткости.

Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Пауза (теория)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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