Приветствую Вас, Гость | RSS
Пятница, 26.04.2024, 22:05
Главная » Статьи » Уроки [ Добавить статью ]

Как создать меню.

http://quadrathell.cn.ua/publ/14-1-0-160 Источник

Интерфейс (в пер. с англ. - между лицом) - некие правила взаимодействия пользователя и программы. Другими словами, это то, что определяет характер и возможности использования программы ее пользователем. При помощи интерфейса осуществляется собственно работа с программой или ее настройка. Интерфейс также может показывать некоторые параметры, необходимые для работы, так, например, в программе «Bred» (аналог «Блокнота») в левом нижнем углу указаны позиция курсора, номер рабочей строки, язык, кодировка и т.д. В понятие интерфейс компьютерной игры можно отнести меню, всплывающие сообщения, наличие курсора, информационный бар (показ здоровья, брони, опыта и т.д.), инвентарь героя и т.п.

Фича (от англ. - feature - характерная черта) - выделяющееся свойство игры, ее характерная особенность. Существуют как общепринятые фичи, так и особые (специальные). К первым, например, относится система прокачки в RPG, ко вторым грави-пушка «Half Life».

Gif-аниматор - программа для создания анимированных изображений.



Введение




Как уже сказано выше, меню - часть игрового интерфейса. Оно попадается игроку одним из первых, поэтому вносит существенный вклад в формирование первого впечатления об игре. Если игровое меню работает некорректно или неправильно оформлено, то можно с высокой долей вероятности говорить о том, что эта игра заранее обречена на провал.



С чего начать?




Ответ очень прост: «Необходимо сначала начать с мысленного планирования вашего меню - концепции». Любой момент в вашей игре, будь то баллистика снарядов или игровое меню, нуждаются в предварительном планировании. Те наработки, которые вы уже мысленно сделали в своем мозгу, сэкономят массу драгоценного времени, так как любой эмпирический (в ходе практики) подбор без теоретических основ долог по определению. Но обо всем по порядку.

Самый лучший способ планирования, как ни странно, - рисование на обычном листе бумаги. На нем вы можете, хоть и коряво, но все же изобразить те пункты меню, которые Вы бы хотели видеть в игре: например, «Новая игра», «Загрузить», «Опции», «Авторы» и «Выход». Также можно заранее позаботиться о подпунктах своего меню: например, в пункте «Опции» будут «Профиль», «Опции Игры», «Опции Графики» и «Опции Звука». Также представляем примерное положение меню в игровой комнате. Оно не обязательно должно быть четко вертикальным или горизонтальным, возможно Вы захотите расположить меню, например, немного наискось или вообще разбросать по всей ширине комнаты, к примеру, если пункты меню похожи на предметы, изображенные на фоне комнаты.



Дальнейшая разработка




После принятия концепции, следует выбрать тип меню. Ну а теперь немного слов о типах меню.

По характеру управления меню может быть:

1) Клавиатурным. Управляется при помощи клавиш;

2) Курсорным (мышечное - от слова мышь). Управление осуществляется при помощи курсора мыши.

В зависимости от выбранного типа меню применяются различные алгоритмы его реализации.

Далее существует еще одна классификация меню.

По способу оформления различают:

1) Текстовое. Текст и фон (фон примитивов) меню рисуются отдельно (или фона вообще нет).

2) Графическое. Рисование по принципу: «Все включено», то есть кнопка меню представляет единый графический файл.

3) Смешанное. Здесь имеется в виду комбинация текста и графического фона (фона, нарисованного на графическом редакторе и внедренного в игру).

Все три способа оформления можно применить при использовании клавиатурного или курсорного меню.

Примечание: так как текст в GM отрисовывается подобно спрайтам: каждая буква текста - отдельный спрайт, то данное деление в принципе условно.

После выбора типа алгоритма реализации и оформления переходим к собственно процессу рисования. Помните, что стиль меню не должен разниться и тем более противопоставляться главной линии дизайна игры. Что бы понять как это выглядит, то просто посмотрите на дизайн активного и неактивного окон Windows XP, да и вообще на весь стиль операционки.

Следующий этап разработки меню - создание базового алгоритма для работы. Это так называемый план-минимум. Данный алгоритм отвечает лишь за переключение и работу самих пунктов.

Предпоследний этап - создание расширенных особенностей (фичей) меню. К таковым можно отнести создание вспышек частиц, запуск звуков, смену изображений при переходе с одного пункта меню на другой.

Завершающий этап - отладка, то есть тестирование меню на профпригодность и исправление неустраненных багов. Не пропускайте данный этап ни в коем случае, так как в дальнейшем неработающее меню может принести кучу проблем и даже сбить весь энтузиазм разработчика.



Практика применения




А теперь посмотрим, как различные типы меню можно реализовывать на практике.

1) Курсорное графическое меню.

Предварительно нарисованные кнопки я лично при помощи Gif-аниматора обычно складываю вместе, дабы не захламлять пространство Game maker-а. У нас будет пять пунктов меню. Под каждый пункт меню должен быть создан свой объект. Приведем код для одного из объектов:



В Create:



image_speed=0//Устанавливаем нулевую скорость анимации

image_index=0//Устанавливаем первый кадр в качестве начального изображения






В Left Pressed (мышь):



room_goto(game)//Перенаправляем игрока в определенную комнату

sound_play(snd_menu_e)//Проигрываем звук при нажатии






В Mouse Enter (мышь):



image_index=1//При наведении меняем кадр изображения на второй

sound_play(snd_menu_c)//Проигрываем звук при наведении






В Mouse Leave (мышь):



image_index=0//При уходе курсора мыши возвращаем первый кадр изображения






В принципе ничего сложного. После создания всех объектов их необходимо поместить в комнату вручную или при помощи функции instance_create(…) (Create), прописанной, в каком-нибудь контроллере.



2) Клавиатурное текстовое меню.

Здесь возиться с графическими редакторами не нужно. Также можно обойтись одним объектом (o_menu_2), вместо пяти. В примере будем обходиться 2-я пунктами меню для экономии места.

В Create:



draw_set_font(f_menu)//Определяем шрифт

option=0//Переменная-переключатель

//Опции - переменные для вывода текста на экран

menu1=" Новая Игра"

menu2=” Выход”






В Step:



//Проверка переменой-переключателя

switch(option)

{

case 0:

menu1="> Новая игра";

menu2=" Выход";

break;

case 1:

menu1=" Новая игра";

menu2="> Выход";

break;

}






В Press «Enter»:



/*При нажатии на Enter в зависимости от состояния переменной-переключателя
осуществляем либо переход к игровой комнате или выход из игры*/


switch(option)

{

case 0:

room_goto(level_0)

break;

case 1:

game_end()

break;

}






В Press «Up»:



//Меняем значение переменой-переключателя в убывающей степени

option-=1

if(option<0){option=1}






В Press «Down»:



//Меняем значение переменой-переключателя в убывающей степени

option+=1

if(option>1){option=0}






В Draw:



draw_set_color(c_white)//Определяем цвет текста

//Рисуем меню

draw_text(x+320,y-400,string(menu1)+"#"+string(menu2))






Теперь немного пояснений по алгоритму. В данном случае мы пользуемся конструкцией switch-case-break. Данный оператор используется, когда осуществление каких-то действий зависит от одной определенной величины, в данном случае от величины переменной option (значение данной переменной записывается в switch предварительно), которая может принимать значение «0» или «1». Изменение значений переменной option определяется клавишами «Up» и «Down». В Step мы проверяем значение option в каждом шаге и соответствующим образом меняем начертание текста, а при помощи «Enter» мы осуществляем либо переход в другую комнату, либо выходим из игры. Для работы меню необходимо поместить o_menu_2 в комнату и настроить положение текста (переменные «x» и «y» в draw_text(…))

Существуют и более сложные алгоритмы создания меню, но сложные - не значит хорошие, поэтому старайтесь исходить из принципа простоты обращения и дружелюбности интерфейса, а не из «крутизны» кода.



Источники




В ходе написания статьи были использованы примеры меню различных авторов, не указавших себя.


Автор: logos2012 (Лебедев Антон) - 29 июля 2008

Контакты: logos2012@yandex.ru
Категория: Уроки | Добавил: RagnaRock (01.10.2010)
Просмотров: 1240 | Комментарии: 1 | Рейтинг: 0.0/0
Всего комментариев: 1
#0 написал: mishalka (01.10.2010)
Спас!

--------------------
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Copyright MyCorp © 2024 |