25.03.2008, 20:00 | #261 | ||
Юзер
Регистрация: 07.06.2006
Адрес: this
Сообщений: 162
Репутация: 112
|
Пусть будет структура, которая будет хранить в себе текущее состояние игры. То есть она может быть типа "пользователь_в_главном_меню", "пользователь_в_настройках", назовем ее GameData. Создадим класс KeyProcessor, который будет обрабатывать клавиши, нажатые пользователем. Здесь, при нажатии на определенную клавишу, будут меняться данные в структуре GameData. К примеру, поступает в класс на обработку клавиша Enter: смотрим, что юзер в главном меню, например, и сейчас выбран элемент "Новая игра", тогда в GameData изменяется информация с "пользователь_в_главном_меню" на "пользователь_в_меню_новая_игра". Ну и так далее. К примеру еще, юзер находится непосредственно в игре, и поступает на обработку клавиша "Вверх", тогда будет выполнена команда "движение вперед". Таким образом будет работать KeyProcessor. Я думаю, было бы разумно отдельно создать визуализатор меню и игры. В классе визуализатора меню должна быть GameData, по которой и будет происходить рисование меню. Также у этого визуализатора должен быть свой обработчик клавиш. Вот он и будет менять информацию в GameData. Далее. Нужно создать класс Game, который будет управлять ядром. То есть его обработчик клавиш будет вносить изменения в Level. К примеру, поступила клавиша "пробел" - танк стреляет. У класса Game должен быть визуализатор. Его можно написать отдельно, а можно и вместе объединить. Он будет рисовать всю карту со всеми объектами. Следовательно, он в членах должен иметь Level. Ну и, наверное, надо создать класс, к примеру, GameModule, который будет управлять всей этой системой. То есть, он создает все перечисленные объекты и управляет ими. У него может быть свой обработчик клавиш. Но он, в принципе, нужен для того, чтобы вызывать обработчики тех классов, которых надо. К примеру, GameData показывает, что юзер сейчас в меню "Новая игра", в GameModule поступает информация о нажатой клавише, GameModule смотрит, что юзер в меню и, соответственно, вызывает обработчик меню. Так же и для игры. // В главном цикле сначала будет вызван обработчик клавиш GameModule'я. Соответственно, в GameData изменится (или не изменится) информация о состоянии. Потом его метод Run(). В нем GameModule будет определять, что сейчас нужно рисовать (в зависимости от состояния GameData). pokibor L'ombre Как думаете, такая система подойдет? Если нет, то давайте обсудим...
__________________
www.rodionovstepan.ru |
||
|
27.03.2008, 00:06 | #262 | ||
Новичок
Регистрация: 07.03.2006
Адрес: !here();
Сообщений: 38
Репутация: 26
|
razor21
вроде не вижу ничего плохого в этой концепции. единственное, что могу добавить - imho игровой процесс и его визулизация на данном этапе важнее всяких меню, gui и тд
__________________
Use the Darkness that you have inside |
||
|
17.02.2009, 15:16 | #263 | ||
Новичок
Регистрация: 13.02.2009
Сообщений: 4
Репутация: 0
|
я бы помог)
чуваки,так тема еще рабочая?у мя есть небольшой опыт 3д моделирования,небольшая база моделек(в основном бсплатно скачанные),текстур и программ,кроме того пытаюсь ща освоить с++(совсем чуть чуть).рад помоч,если смогу
|
||
|
16.03.2009, 20:55 | #264 | ||
Юзер
Регистрация: 13.03.2009
Сообщений: 219
Репутация: 23
|
Интересная идея!Но это достаточно сложно все...
__________________
Как-то раз Билла Гейтса спросили: - Какая из операционных систем, когда либо создававшихся человеком, самая лучшая? - UNIX - не задумываясь ответил Гейтс. - Но... а как же Windows? - Windows создал Бог... - скромно ответил тот. |
||
|
29.04.2011, 00:04 | #267 | ||
Новичок
Регистрация: 23.07.2009
Адрес: Suburbia
Сообщений: 70
Репутация: 18
|
Razzeeyy!, бесполезно, тема мертва уже два года как.
Ну даже если на то пошло, что ты можешь привнести в проект? Что конкретно ты можешь делать? Это языком чесать что ли? Какие языки? Дизайнер и скриптер в одном лице? Вы заставляете усомниться в своей компетенции по этим вопросам. |
||
|
12.05.2011, 19:31 | #268 | ||
Новичок
Регистрация: 08.10.2010
Сообщений: 10
Репутация: 1
|
Цитата:
я не имел ввиду что я прям ох какой программист, я так что то простенькое могу наскриптить, там на с++ ... ну вот как ты в этом посте. _______________________________ З.Ы. Вот такое чувство что народ переводиться стал... все какие то язвительные... |
||
|
23.05.2011, 16:07 | #269 | ||
Новичок
Регистрация: 23.07.2009
Адрес: Suburbia
Сообщений: 70
Репутация: 18
|
|||
|
03.01.2012, 19:35 | #270 | ||
Новичок
Регистрация: 08.10.2010
Сообщений: 10
Репутация: 1
|
Пытаюсь набросать основы движка (не совсем так, как описано в шапке):
http://ompldr.org/vYzFkNg код ещё очень сырой/черновой/не соответствует стандартам и т.п. Прощу обратить внимание знатоков C++, в частности уважаемого pokibor. Из багов: 1) Не знаю почему сегфолится на 21 строке (если разкоментировать) в файле objects.hpp 2) Надо как-то сместить позицию создаваемой пули, чтобы визуально вылетала из дула (Я что-то ума не приложу сейчас ) Для компиляции вам нужна будет библиотека SFML-1.6 (см. http://www.sfml-dev.org/) P.S. ещё раз повторюсь: код -- черновой, поэтому там кривая архитектура/плохой стиль и пр. Когда пойму, что ЭТО(модель поведения танка в целом) работает так как надо, начну детально обдумывать архитектуру и переписывать код в более хорошем стиле. P.P.S. Обращение к школьн^W простым геймерам: если вы не понимаете/не знаете/не одобряете, то о чём говорится в данном посте -- обходите его (глазами) стороной, не начинайте бесцельную дискуссию. Последний раз редактировалось Razzeeyy!; 03.01.2012 в 19:48. |
||
|
04.01.2012, 23:10 | #271 | ||
Новичок
Регистрация: 08.10.2010
Сообщений: 10
Репутация: 1
|
Пофиксил баги: http://ompldr.org/vYzIydw
|
||
|
|