По-началу объектно-ориентированное программирование может вызывать у вас некоторые затруднения, однако, поняв как всё это взаимосвязанно работает между собой, вы сможете почувствовать весьма приятные моменты ООП.
Я не буду говорить об инкапсуляции, полиморфизме и наследовании, а просто перечислю преимущества ООП в программировании игр.
Я не буду говорить об инкапсуляции, полиморфизме и наследовании, а просто перечислю преимущества ООП в программировании игр.
Отличия между структурным и объектно-ориентированным программированием.
В структурном программировании для хранения многих объектов в основном используются массивы, это вызывает некоторые затруднения у программистов. Сам я, честно говоря, мало пользовался структурным программированием. В первое время я создавал типы, добавлял их в списки для типов (такие списки используются в Blitz'ах) и управлял ими с помощью циклов. Основной процесс игры управлялся набором функций, вся игра занимала лишь один листок с исходным кодом. Потом меня направили на путь истинный, я начал создавать типы с принадлежащими им объектами и методами, программирование стало гораздо гибче и удобнее.
Используя типы и найдя небольшую ошибку в программе, вы сможете легко её исправить, в то время, как использование структурного программирования, заставит вас затронуть глобальные переменные и основной процесс.
Небольшой пример ООП в играх:
Создаём тип TGame, TGameManager, TMenu.
Запуск игры будет происходить из куска исходного кода Main. В нём создаём объект типа TGameManager, которому будут принадлежать объект типа TGame и объект TMenu. В зависимости от переменной state, принадлежащей TGameManager, будет происходить апдейт либо объекта типа TGame, либо TMenu.
Поначалу может показаться немного запутанным, но, в целом, это весьма удобно.
Используя типы и найдя небольшую ошибку в программе, вы сможете легко её исправить, в то время, как использование структурного программирования, заставит вас затронуть глобальные переменные и основной процесс.
Небольшой пример ООП в играх:
Создаём тип TGame, TGameManager, TMenu.
Запуск игры будет происходить из куска исходного кода Main. В нём создаём объект типа TGameManager, которому будут принадлежать объект типа TGame и объект TMenu. В зависимости от переменной state, принадлежащей TGameManager, будет происходить апдейт либо объекта типа TGame, либо TMenu.
Поначалу может показаться немного запутанным, но, в целом, это весьма удобно.
Комментариев нет:
Отправить комментарий