Я пишу игру на C++ с графической библиотекой SDL2. Я использую классы с наследованием для определения объектов в моей игре.Способы обновления объектов игры
Entity
-> Player
-> BadGuy
-> Bullet
В этом примере Player, BadGuy и Bullet являются подклассами Entity. Я делаю это так, чтобы я мог хранить список Entity в своей игре и перебирать каждую сущность для обновления и рендеринга. Таким образом, каждый объект будет иметь уникальный update()
, чтобы определить их поведение.
Проблема, с которой я сталкиваюсь, заключается в том, что в методе обновления разные сущности не могут «видеть» друг друга. Если экземпляр Player
хочет проверить, сталкивается ли с ним экземпляр Bullet
, мне нужно будет передать список всех сущностей в качестве аргумента для update()
для проверки. Это не кажется настолько плохим, пока вы не рассмотрите все вещи, которые может понадобиться для использования метода обновления. Карта игры, информация о состоянии произвольной игры и другие вещи должны быть переданы в качестве аргументов для использования update()
.
Есть ли в этом легкое решение? Или лучший, но все же похожий шаблон программирования для использования? Любой совет будет принят во внимание.