Создание игр » Новости » Разделение демо-проектов
Разделение демо-проектов
В последние дни, наконец-то, нашёл время и разделил наш демо-проект на два разных: дему 2д и дему 3д. Мне захотелось как-то минимизировать количество кода, который нам придётся писать в каждом новом приложении – для этого было необходимо вынести часть повторяющегося в каждом приложении кода в классы движка и потому использовать эти классы в новых приложениях.
В итоге я пришёл к тому, что было бы удобнее как сейчас, так и в будущем, иметь в проекте движка отдельный класс CGameApplication, который будет инкапсулировать в себе основной функционал создания класса окна, основного цикла рендера, и некоторые другие сервисные функции, а так же чистые виртуальные функции:
- Init – функция первоначальной инициализации рендера, загрузки объектов и т.д.
- CleanUp – функция выгрузки данных, вызывается перед завершением работы программы
- UpdateFrame – функция, вызываемая для апдейта состояния мира
- Render – отдельная функция рендера, в которой, по идее, должен быть только рендер и никакой прочей логики
От этого базового класса CGameApplication мы будем в каждом приложении наследовать новый класс этого приложения и переопределять эти виртуальные функции, что бы задать поведение программы.
Дабы не растекаться водой по древу, просто скажу, что я это сделал и готовый код лежит в архиве с исходниками и далее мы будем использовать этот код во всех новых демках, по возможности, развивая и дополняя его, что бы со временем он стал более удобным, понятным и “красивым”.
Структура класса получилась совсем не сложная, потому, думаю, для Вас не будет проблемой самостоятельно разобраться, что именно я там сделали как оно работает.
Раздел: Новости · Теги: Создание движка
Спасибо большое!
Antony, да не за что )
Я там ещё кое-что забыл лишнее поудалять, в следующем уроке (будет буквально в течение пары часов) почистил все данные и код.