Доступ к компонентам компонентов танков FPS

Проблема FPS, с которой я сталкиваюсь, возникает, когда я пытаюсь получить доступ к компоненту сущности с помощью таких строк:

SpriteComponent* sprite = (SpriteComponent*) entity_pointer->getComponent("Sprite");
PositionComponent* position = (PositionComponent*) entity_pointer->getComponent("Position");

getComponent (имя компонента) возвращает указатель компонента, который можно превратить в производный класс компонента.

Я закомментировал фрагменты своего кода и определил, что подобные строки снижают мой FPS, особенно когда я создал много объектов.

Чтобы дать краткое изложение того, как я плохо настроил свою систему компонентов сущностей: у меня есть группа указателей контроллеров, которые содержат указатели сущностей, которые содержат указатели компонентов. Каждый контроллер делает определенную вещь с сущностью, если у него есть правильные компоненты, такие как физический контроллер, продвигающий положение сущности, используя скорость, заданную физическим компонентом. Все различные классы контроллеров являются производными от класса Controller, а различные компоненты — производными от класса Component.

Теперь я новичок в C ++ и указатели по этому вопросу, поэтому я надеюсь, что все настроено правильно. Что из-за того, что эти две строки могут так сильно замедлить мою игру? У тебя что-нибудь выскакивает?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]