В этой статье мы с вами создадим внутриигровой Радар
Внутриигровой радар в этой игре работает по следующему принципу:
Отображать союзников
время отображения == время жизни союзника.
отображение == всегда
дальность отображения == зона видимости радара
Отображать противников
отображение == иногда
время отображения
при визуальном столкновении
столкнулись вы == время отображения 5с
столкнулись союзники == время отображения 3с
при вооруженном столкновении
столкнулись вы или любой союзник == время отображения 10с
столкновения не было, противник стрелял == время отображения 3с
дальность отображения == зона видимости радара
Наша задача в том, чтобы противники всегда отображались на радаре, не зависимо от того, были столкновения / стрельба или нет.
В этом нет ничего сложного.Нам просто нужно получить необходимые смещения, указатели, получить итератор сущностей, перебирать их в цикле и отображать на радар, указав время отображения.
Класс IGameFramework выглядит теперь вот так:
Класс IGameRules:
Класс IActorsystem:
Класс IEntity:
Класс IEntityIterator:
И самое простое во всём этом:
Если вам что-то не понятно, не стесняйтесь задавать свои вопросы в ЛС Discord или ниже в комментариях.