forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Пауза и свет (http://forum.boolean.name/showthread.php?t=14397)

umnick 11.03.2011 22:14

Ответ: Пауза и свет
 
Спасибо всем,сижу изучаю туторы.Получилось реализовать меню используя пример LLI.T.A.L.K.E.R. , он больше подошел для моей "игры". Для более крупных проектов буду использоватьалгоритмы посложнее :)

RegIon 12.03.2011 11:30

Ответ: Пауза и свет
 
Цитата:

Хмм....весьма примитивно и снова не гибко.
На самом деле твой метод ужасен.
Зачем плодить отдельные классы на состояния?
Init() и Destroy() для игрового состояния - это вообще бред.
Во вторых при твоем подходе весьма затруднительно будет комбинировать стейты между собой, а тут все просто : CreateEvent(GAME_WORLD_DRAW_ONLY | GAME_PAUSE).Emit() - дали команду движку что приложение находится в паузе. А движок уже сам допиливает этот флаг ( рисовать но не обновлять мир + рисовать и обновлять меню паузы). флаг GAME_PAUSE - отвечает только за отрисовку потемневшего задника + обновление и отрисовку менюхи, а за застывший задний кадр отвечает впередиидущий флаг состояния. На то она и гибкость - что жестко ничего привязывать не надо.
Если тебя испугал тот громозкий код, то там происходит всего-то - инициализация при запуске программы, зато главный цикл - 3 строчки кода. И мне не надо запоминать и где то хранить переменные стэйтов, а вместо этого просто комбинировать 6-7 основных стэйт-флагов. =)

ЗЫ Во всех нормальных программах управление ядром осуществляется через события
А никто сам исходный код не помнит.....там проще было...гдето тутор был.

Черный крыс 12.03.2011 13:06

Ответ: Пауза и свет
 
Цитата:

Сообщение от Костян (Сообщение 182438)
А никто сам исходный код не помнит.....там проще было...гдето тутор был.

GoTo(зубрить) -> BRL.Hook, BRL.Event, BRL.EventQueue


Часовой пояс GMT +4, время: 02:37.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot