Уроки Коммент.

Создание игр » Новости » Разделение демо-проектов

Разделение демо-проектов

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

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

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

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

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

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

Ещё по этой теме:




Раздел: Новости · Теги: Создание движка

2 комментариев на "Разделение демо-проектов"
  1. Antony пишет:

    Спасибо большое!

    1. Вячеслав пишет:

      Antony, да не за что )

      Я там ещё кое-что забыл лишнее поудалять, в следующем уроке (будет буквально в течение пары часов) почистил все данные и код.

Оставить комментарий

*

Вы можете использовать это HTMLтеги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>