Предыдущая Следующая
12.2. Проект Menu
Какие команды и кнопки у нас были отведены для управления игрой? Кнопка Back закрывает игру, а кнопка Start включает режим паузы, и ее повторное нажатие отменяет паузу в игре. Этого нам будет мало и придется добавить в игру еще несколько команд, при этом необходимо строго разграничить их работу. Посмотрите на рис. 12.1, где схематично показан предлагаемый механизм функционирования игры.
Идея следующая. Происходит запуск игры, и пользователь попадает в меню. В меню мы нарисуем на экране две таблички с надписями Игра и Выход (рис. 12.2). Фактически этим мы создадим две команды для запуска игры и выхода из игры. Переход по обеим командам будет осуществляться командами Вверх и Вниз на GamePadDPad. Выполняя команду Вверх (Игра), мы будем активировать данное состояние и дезактивировать команду Выход. Для переключения этого состояния можно использовать дополнительную переменную - как булеву, так и цело-
216 Создаем игровое меню
Рис. 12.1. Схема работы игры
численную, например cursorState. Единственное отличие при выборе типа переменной - это то, что в булевой переменной есть только два состояния, тогда как целочисленной переменной можно присваивать сколько угодно состояний. Например, если cursorState равна 1, то активируем игру, если cursorState равна 2, то активируем экран опций, а если cursorState равна 3, активируем заставку «Об авторе» и т. д.
В итоге если выполнена команда Вверх, то мы присваиваем переменной cursorState значение, равное 1, а если Вниз, то значение этой переменной изменяется на 2. Что нам это дает? А дает нам это многое, в частности далее мы будем проверять нажатие пользователем кнопки с буквой А.
Если кнопка А нажата и переменная cursorState равна 1, то выполняется запуск игры, а вот если переменная cursorState равна 2, то по нажатии этой кнопки будет осуществлен выход из игры. Таким образом, для одной кнопки А мы создаем два разных условия, а пользователю будет комфортно управлять работой игры.
Теперь о том, как после выполнения команд Вверх (Игра) и Вниз (Выход) на СатеРасСОРасС дать понять пользователю, какая из команд сейчас активна. Способов здесь очень много, и все зависит только от вашей фантазии. В одних играх текущая активная команда подсвечивается, в других играх команда анимируется, в третьих существует курсор, указывающий на то, какая из команд меню сейчас активна, и т. д. То есть это дело фантазии и стилистики оформления всей игры в целом. Предыдущая Следующая
|