Базовый класс приложенияокна рендера

Оценить материал:

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезды
Загрузка...

разделение демо проектов создание движка
В последние дни, наконец-то, нашёл время и разделил наш демо-проект на два разных: дему 2д и дему 3д. Мне захотелось как-то минимизировать количество кода, который нам придётся писать в каждом новом приложении – для этого было необходимо вынести часть повторяющегося в каждом приложении кода в классы движка и потому использовать эти классы в новых приложениях.

В итоге я пришёл к тому, что было бы удобнее как сейчас, так и в будущем, иметь в проекте движка отдельный класс CGameApplication, который будет инкапсулировать в себе основной функционал создания класса окна, основного цикла рендера, и некоторые другие сервисные функции, а так же чистые виртуальные функции:

    Init – функция первоначальной инициализации рендера, загрузки объектов и т. д. CleanUp – функция выгрузки данных, вызывается перед завершением работы программы UpdateFrame – функция, вызываемая для апдейта состояния мира Render – отдельная функция рендера, в которой, по идее, должен быть только рендер и никакой прочей логики

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

Дабы не растекаться водой по древу, просто скажу, что я это сделал и готовый код лежит в архиве с исходниками и далее мы будем использовать этот код во всех новых демках, по возможности, развивая и дополняя его, что бы со временем он стал более удобным, понятным и “красивым”.

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

Рассказать друзьям:

Похожие записи: