Как создать игровое меню с государствами

Я искал пример того, как составить игровое меню. Например, я хочу открыть приложение в меню. Оттуда он либо откроет «играть в игру» «Показать кредиты» «Выход».

Все, что я видел до сих пор, для всплывающих меню ..

Поэтому я ищу ответ об использовании «состояний», таких как состояние паузы, состояние игры и т. Д. Но я не могу понять, каким должен быть макет или как его использовать. Ни как создать MenuState и не могу найти пример где угодно

Используя перенасыщение и freeglew

5

Решение

Реализация GUI

Основная идея состоит в том, чтобы создать несколько текстурированных квадраторов перед камерой, и когда пользователь нажимает на экран, переводит его в мировое пространство и выясняет, на каком квадре и, следовательно, на какой кнопке они нажимали. Вы можете найти, что ортогональная проекция — путь сюда.

Точная реализация будет зависеть от того, как вы взаимодействуете с клавиатурой и мышью (GLUT, SDL и т. Д.).

Вы можете рассмотреть возможность использования инфраструктуры GUI, такой как CEGUI, FLTK или подобный, хотя, поскольку это часто может быть сложной задачей.

Состояния игры

Состояния игры — это простой способ абстрагироваться от прохождения uesr через игру. Это позволяет вам моделировать различные области игры как узлы на DFA или используя стек. Затем вы можете реализовать это, создав API, от которого наследуются объекты GameState. затем вы можете реализовать различные виды игровых состояний, извлекая классы из этого интерфейса.

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

Если для управления состоянием используется DFA, то существует одно активное состояние, которое представляет текущий узел DFA. Затем состояние может выбрать новое состояние для перехода на основе входных данных для игры (щелчок кнопки воспроизведения в меню и т. Д.).

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

Пример простого игрового движка здесь: https://bitbucket.org/iwillspeak/thulium/src. GameState базовый класс для игровых состояний. Этим управляет GameStateFactory, SampleState пример реализации игрового состояния

6

Другие решения

Других решений пока нет …