Пауза
| |
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 и все остановится. Проверено Экспертом
3дэшечки: https://sketchfab.com/myactyindie Курентли воркс он: https://myacty.itch.io/raskopnik
|
|
| |
LunarPixel | Дата: Пятница, 30 Сентября 2011, 17:27 | Сообщение # 4 |
старожил
Сейчас нет на сайте
| MyACT, хм... насколько я знаю, скорость комнаты нельзя установить в 0. Как ты, интересно, это проверял!?
|
|
| |
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>. Думаю, понятно.
Уроки по 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) Думаю, понятно. Если загрузить игру, то все изменения пропадут. Тем не менее, вариант Лунара, разумеется, хорош и мне понравился.
|
|
| |
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, если брать в пример тот же инвентарь, то после того, как ты в инвентаре все манипуляции провел и закрыл его, то игра ЗАГРУЖАЕТСЯ, а вместе с ней и прежнее состояние инвентаря.
|
|
| |
FadeBaker | Дата: Пятница, 30 Сентября 2011, 19:51 | Сообщение # 11 |
JavaSE Game Developer
Сейчас нет на сайте
| LunarPixel, вы меня не так поняли. Я привел совсем другой пример, с сохранением и загрузкой, а инвентарь в счёт не брал. Но если совместить эти 2 способа, то будет отлично!
Уроки по 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)}
|
|
| |
Xageu | Дата: Пятница, 30 Сентября 2011, 20:27 | Сообщение # 13 |
Хадей - Друг Детей
Сейчас нет на сайте
| Quote (vasyan555) LunarPixel, вы меня не так поняли. Я привел совсем другой пример, с сохранением и загрузкой, а инвентарь в счёт не брал. Но если совместить эти 2 способа, то будет отлично! Извини, конечно, но приведенный тобой пример на уровне "урок по созданию платформера". Вопрос-то по другому звучал.
|
|
| |
InsDes | Дата: Пятница, 30 Сентября 2011, 20:35 | Сообщение # 14 |
почетный гость
Сейчас нет на сайте
| Загё, А действительно. Что мешает сейвнуться, перейти в рум с инвентом, сделать там настройки, сохранить в ини и лоаднуться?
|
|
| |
LunarPixel | Дата: Пятница, 30 Сентября 2011, 21:03 | Сообщение # 15 |
старожил
Сейчас нет на сайте
| InsDes, зачем создавать целых два доп. файла?! к тому же добавлять лишние строки работы с ini, загружать считыванием/записью. Может там под сотню параметров меняется, все записывать в файлик будешь?!
|
|
| |
InsDes | Дата: Пятница, 30 Сентября 2011, 21:17 | Сообщение # 16 |
почетный гость
Сейчас нет на сайте
| LunarPixel, Ну ведь мы оба прекрасно понимаем, что там не сотня параметров...
Сообщение отредактировал InsDes - Пятница, 30 Сентября 2011, 21:17 |
|
| |
LunarPixel | Дата: Пятница, 30 Сентября 2011, 21:23 | Сообщение # 17 |
старожил
Сейчас нет на сайте
| InsDes, от куда ты знаешь?! Например это РПГ, пауза нужна при входе в инвентарь/характеристики героя/на карту мира/в настройки и т.д. везде можно менять параметры. Один только инвентарь может быть 10х10, это уже 100 параметров хранить надо будет. Да и даже если параметров меньше, это не исключает всего остального, о чем я написал. Зачем это нужно, если есть как минимум 2 способа, которые намного проще?!
|
|
| |
Йакуд | Дата: Пятница, 30 Сентября 2011, 21:45 | Сообщение # 18 |
участник
Сейчас нет на сайте
| Самая простая пауза: Code show_message("Pause");
"Хороший художник – копирует, гениальный – ворует!" — Pablo Picasso .blanco 2.0
|
|
| |
InsDes | Дата: Пятница, 30 Сентября 2011, 21:58 | Сообщение # 19 |
почетный гость
Сейчас нет на сайте
| Йакуд, Но в твоей паузе некий дефект, а именно на кнопке написано "Ок", что не есть win`ом.. Я предлагал лучшее решение! if keyboard_check_pressed(ord('P')) {show_message_ext('Pause',0,'Resume',0)}
|
|
| |
Xageu | Дата: Пятница, 30 Сентября 2011, 22:03 | Сообщение # 20 |
Хадей - Друг Детей
Сейчас нет на сайте
| Походу, парни, вам некуда ваши знания приложить. Lunar, как я выше уже сказал, дал именно тот ответ, который мне нужен, как по функционалу, так и по краткости.
|
|
| |
|