Как лучше всего организовать код для простой игры для X11 и Win32? - PullRequest
0 голосов
/ 14 января 2012

Я реализую простую игру для задания, которая в идеале будет работать как на Unix (с использованием графического контекста X11), так и на Windows (с использованием GDI Window) с обоими оконными менеджерами.Каков наилучший способ структурировать код так, чтобы я мог просто подключить правильный класс C ++, чтобы он работал на каждой ОС?

Более конкретно, как мне полностью отделить графический и оконный компоненты?фактического игрового компонента?(например, используйте шаблон наблюдателя, чтобы игровой компонент наблюдал на оконном компоненте платформы для пользовательского ввода, создавал общий интерфейс для загрузки / отображения спрайта, создавал другой общий интерфейс для перерисовки и т. д.).Кто должен нести ответственность за копирование и вставку контекста графики / устройства каждого объекта в главный экран gc / dc?Какой компонент должен содержать основной обратный вызов eventloop / window (если это основной компонент, то нужны ли мне две версии основного компонента для каждой платформы?) Кроме того, как сделать так, чтобы каждый объект (например, блоки, символы и т. Д.) Содержал платформутипы данных (gc для X11 и DC для GDI)?

Два основных требования: я могу использовать только X11 и GDI, и он не может быть многопоточным.

1 Ответ

2 голосов
/ 14 января 2012

Игры редко зависят от платформы. Простые игры могут быть сделаны с GLUT, и очень легко поддерживать две версии кода, используя #defines. Обратные вызовы обрабатываются GLUT.

Таким образом, GLUT позволит вам написать практически одинаковый код для Windows и Linux. (Поскольку такие вопросы, как создание контекста, уже обрабатываются GLUT).

Если ваш проект не предусматривает явного переписывания GLUT, я рекомендую вам придерживаться его и приступить к написанию своей игры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...