воскресенье, 3 июня 2012 г.

ООП в играх

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

Я не буду говорить об инкапсуляции, полиморфизме и наследовании, а просто перечислю преимущества ООП в программировании игр.

Отличия между структурным и объектно-ориентированным программированием.

В структурном программировании для хранения многих объектов в основном используются массивы, это вызывает некоторые затруднения у программистов. Сам я, честно говоря, мало пользовался структурным программированием. В первое время я создавал типы, добавлял их в списки для типов (такие списки используются в Blitz'ах) и управлял ими с помощью циклов. Основной процесс игры управлялся набором функций, вся игра занимала лишь один листок с исходным кодом. Потом меня направили на путь истинный, я начал создавать типы с принадлежащими им объектами и методами, программирование стало гораздо гибче и удобнее.

Используя типы и найдя небольшую ошибку в программе, вы сможете легко её исправить, в то время, как использование структурного программирования, заставит вас затронуть глобальные переменные и основной процесс.

Небольшой пример ООП в играх:

Создаём тип TGame, TGameManager, TMenu.
Запуск игры будет происходить из куска исходного кода Main. В нём создаём объект типа TGameManager, которому будут принадлежать объект типа TGame и объект TMenu. В зависимости от переменной state, принадлежащей TGameManager, будет происходить апдейт либо объекта типа TGame, либо TMenu.

Поначалу может показаться немного запутанным, но, в целом, это весьма удобно.

Комментариев нет:

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