Пятница, 26 Апреля 2024, 13:10

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Помогите сделать несколько фич на GM (Game Maker, GML - меню, пауза и пр.)
Помогите сделать несколько фич на GM
Ho_Sung_PakДата: Суббота, 31 Марта 2012, 14:18 | Сообщение # 1
желтый человек
Сейчас нет на сайте
Возникли проблемы с решением некоторых задач при создании игры.

Ребята, пожалуйста, помогите реализовать на Game Maker’е следующие особенности:

1. Меню, которое вызывается нажатием на кнопку Esc. Выводится во время игры, ставя её на паузу. В нём есть опции, которые выбираются мышкой и клавиатурой (стрелки и Enter): Начать уровень заново, Выйти в главное меню, Выйти из игры.

2. Сетку уровней, которые открываются один за другим по прохождению, и прогресс сохраняется. Т.е. так, чтобы можно было выйти из игры и последующему заходу играть в те уровни, которые ты прошел. Во многих казуальных играх есть такое:



3. Как сделать так, чтобы на одном действии анимация персонажа не зацикливалась, а выполнила один цикл. Т.е. нажимаю кнопку "сидеть", а персонаж не 1 раз приседает, а бесконечно пока зажата кнопка.

Очень буду благодарен за подсказки и, если есть, примеры.


Киносайт

Сообщение отредактировал Ho_Sung_Pak - Суббота, 31 Марта 2012, 14:19
stingerДата: Суббота, 31 Марта 2012, 14:59 | Сообщение # 2
участник
Сейчас нет на сайте
2.Создай массив уровней,где только первый уровень будет открыт
Code
level[0]=1 //первый уровень открыт
level[1]=0 //второй-закрыт

Поставь проверку if level[1]=1 меняй спрайт и ставь в событии мыши переход на 2 уровень
При прохождении первого уровня пиши level[1]=1
ressДата: Суббота, 31 Марта 2012, 15:27 | Сообщение # 3
постоянный участник
Сейчас нет на сайте
3.

К примеру можно в событие STEP воткнуть следующий скрипт меняющий спрайт:

Code
if keyboard_check_pressed(vk_down) then //Кнопка нажата(не зажата)?
begin
//меняем спрайт
sprite_index=player
//ускоряем анимацию
image_speed=0.2
end;

//кнопка отпущена?
if keyboard_check_released(vk_down) then
begin
//меняем спрайт
sprite_index=sprite1
//отключаем анимацию
image_speed=0
end;


Небольшой пример: http://zalil.ru/32988135


Я очень недоволен...

Сообщение отредактировал ress - Суббота, 31 Марта 2012, 15:40
BazketДата: Суббота, 31 Марта 2012, 15:51 | Сообщение # 4
участник
Сейчас нет на сайте
ress, зачем begin и end?

Требуется художник, для рисования множества вещей, персонажей и прочего. Оплата приветствуется.
ressДата: Суббота, 31 Марта 2012, 16:13 | Сообщение # 5
постоянный участник
Сейчас нет на сайте
Bazket, ну как зачем? Тут два действия: смена спрайта и смена скорости анимации. Без begin'а не получится.

Я очень недоволен...
TakBarДата: Суббота, 31 Марта 2012, 16:37 | Сообщение # 6
постоянный участник
Сейчас нет на сайте
Bazket, вместо '{' и '}' еще можно использовать 'begin' и 'end'

Game Maker. Урок по созданию игры, как Веселая ферма
Нет у меня ничего. Отвечать не буду: нет меня.
Ho_Sung_PakДата: Суббота, 31 Марта 2012, 19:37 | Сообщение # 7
желтый человек
Сейчас нет на сайте
ress, Не пойдёт в данном случае твой вариант, т.к. он рассчитан на использование 1 не анимированного спрайта.

Я же говорю, что у меня цикл кадров, а не 1 кадр.

Я нажимаю кнопку вниз (садиться) начинается анимация спрайта 1,2,3,4,5…. Мне нужно, чтобы она заканчивалась по окончанию кадров.
__

stinger, Не то. Мне нужна вся система: меню, открытые и закрытые окна, система открытия и сохранения, верификация с сохранением. Это сложная комплексная вещь, а не тупо замена спрайта.


Киносайт
OneAccauntДата: Суббота, 31 Марта 2012, 19:41 | Сообщение # 8
частый гость
Сейчас нет на сайте
Ho_Sung_Pak,
есть варинат
if image_index=(последний кадр в анимации) image_speed=0; biggrin
И так в каждый объект где должна закончится анимация blink


Сайт OneAccaunt

Сообщение отредактировал OneAccaunt - Суббота, 31 Марта 2012, 19:42
ressДата: Суббота, 31 Марта 2012, 19:59 | Сообщение # 9
постоянный участник
Сейчас нет на сайте
Quote (Ho_Sung_Pak)
Я нажимаю кнопку вниз (садиться) начинается анимация спрайта 1,2,3,4,5…. Мне нужно, чтобы она заканчивалась по окончанию кадров.


Ну тогда в событии Create вводим переменную anim=false

А в событии Step вводим код:

Code
if (anim=true) and (image_index=2) then //вместо image_index=2 пишешь image_index=последний кадр
image_speed=0

if keyboard_check_pressed(vk_down) then
begin
sprite_index=player
image_speed=0.2
anim=true
end;

if keyboard_check_released(vk_down) then
begin
sprite_index=sprite1
image_speed=0
anim=false
end;


Пример: http://zalil.ru/32989581

Если я и сейчас что-то не понял... То я даже не знаю что smile

Добавлено (31.03.2012, 19:59)
---------------------------------------------
Quote (OneAccaunt)
Ho_Sung_Pak,
есть варинат
if image_index=(последний кадр в анимации) image_speed=0;
И так в каждый объект где должна закончится анимация


Ах да! Что я туплю! Если нужен только последний кадр, то делай как советует OneAccaunt. Я просто щас бесполезную кучу кода кажись предложил smile Вы уж простите мою невнимательность biggrin


Я очень недоволен...

Сообщение отредактировал ress - Суббота, 31 Марта 2012, 20:01
stingerДата: Суббота, 31 Марта 2012, 21:14 | Сообщение # 10
участник
Сейчас нет на сайте
В событии конец анимации поставь image_speed=0

Добавлено (31.03.2012, 21:14)
---------------------------------------------
Ho_Sung_Pak, не понимаю,чего тебя не устраивает в системе уровней?Кинь исходник,посмотрю.

Ho_Sung_PakДата: Воскресенье, 01 Апреля 2012, 14:26 | Сообщение # 11
желтый человек
Сейчас нет на сайте
Quote (stinger)
не понимаю,чего тебя не устраивает в системе уровней?Кинь исходник,посмотрю.


Я объяснил. Что мне твои 2 строчки, когда мне нужна полная система.

ress, спасибо. Сегодня попробую... мне нужно будет переделать имеющиеся скрипты, убрать кое-что, чтобы твой работал...


Киносайт
ressДата: Воскресенье, 01 Апреля 2012, 14:51 | Сообщение # 12
постоянный участник
Сейчас нет на сайте
Quote (Ho_Sung_Pak)
ress, спасибо. Сегодня попробую... мне нужно будет переделать имеющиеся скрипты, убрать кое-что, чтобы твой работал...

Мой код слишком массивный. Я немного не понял задачу когда его писал. А теперь более менее въехал smile

Добавлено (01.04.2012, 14:51)
---------------------------------------------

Quote (Ho_Sung_Pak)
1. Меню, которое вызывается нажатием на кнопку Esc. Выводится во время игры, ставя её на паузу. В нём есть опции, которые выбираются мышкой и клавиатурой (стрелки и Enter): Начать уровень заново, Выйти в главное меню, Выйти из игры.


Можно попробовать при помощи деактивации всех объектов, а потом обратной активации:

Code
instance_deactivate_object(player) //Деактивация


Code
instance_activate_all(player) //Активация


На время деактивации, просто переноси действие игры в другую комнату с кнопкой возврата к игре.


Я очень недоволен...

Сообщение отредактировал ress - Воскресенье, 01 Апреля 2012, 14:45
Ho_Sung_PakДата: Понедельник, 02 Апреля 2012, 03:16 | Сообщение # 13
желтый человек
Сейчас нет на сайте
Quote (ress)
На время деактивации, просто переноси действие игры в другую комнату с кнопкой возврата к игре


У меня есть такое, но мне нужно меню поп-ап-действия, так сказать. Т.е. всплывающий блок посредине экрана.

С использованием другой комнаты у меня есть пример. Также где-то был пример с использованием этих стандартных черных окошек GM - но это не пойдёт для игры, которая претендует на большее, чем игра только для друзей...


Киносайт
ressДата: Понедельник, 02 Апреля 2012, 14:37 | Сообщение # 14
постоянный участник
Сейчас нет на сайте
Quote (Ho_Sung_Pak)
У меня есть такое, но мне нужно меню поп-ап-действия, так сказать. Т.е. всплывающий блок посредине экрана.

А если этот всплывающий блок составить из нескольких объектов? Ну то есть сделать объект рисующий меню паузы, и поверх него добавить несколько объектов выполняющих роль кнопочек.


Я очень недоволен...
Ho_Sung_PakДата: Понедельник, 02 Апреля 2012, 23:39 | Сообщение # 15
желтый человек
Сейчас нет на сайте
Quote (ress)
А если этот всплывающий блок составить из нескольких объектов? Ну то есть сделать объект рисующий меню паузы, и поверх него добавить несколько объектов выполняющих роль кнопочек.

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


Киносайт
Ho_Sung_PakДата: Понедельник, 02 Апреля 2012, 23:43 | Сообщение # 16
желтый человек
Сейчас нет на сайте
Насчёт сетки открытия уровней - я только что нашел чувака на этом форуме, кто на GML реализовал такое в своей игре, это Загё в игре "Slumdog Abdul".
Попрошу у него кусок кода.



Киносайт

Сообщение отредактировал Ho_Sung_Pak - Вторник, 03 Апреля 2012, 00:02
Ho_Sung_PakДата: Среда, 04 Апреля 2012, 02:41 | Сообщение # 17
желтый человек
Сейчас нет на сайте
Он не дал шаблон. Поэтому вопрос всё ещё актуален.

Киносайт
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Помогите сделать несколько фич на GM (Game Maker, GML - меню, пауза и пр.)
  • Страница 1 из 1
  • 1
Поиск:

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