Помогите сделать несколько фич на 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; И так в каждый объект где должна закончится анимация
Сайт 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
Если я и сейчас что-то не понял... То я даже не знаю что
Добавлено (31.03.2012, 19:59) --------------------------------------------- Quote (OneAccaunt) Ho_Sung_Pak, есть варинат if image_index=(последний кадр в анимации) image_speed=0; И так в каждый объект где должна закончится анимация
Ах да! Что я туплю! Если нужен только последний кадр, то делай как советует OneAccaunt. Я просто щас бесполезную кучу кода кажись предложил Вы уж простите мою невнимательность
Я очень недоволен...
Сообщение отредактировал 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, спасибо. Сегодня попробую... мне нужно будет переделать имеющиеся скрипты, убрать кое-что, чтобы твой работал... Мой код слишком массивный. Я немного не понял задачу когда его писал. А теперь более менее въехал Добавлено (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 |
желтый человек
Сейчас нет на сайте
| Он не дал шаблон. Поэтому вопрос всё ещё актуален.
Киносайт
|
|
| |
|