У меня есть базовый класс Entity, который наследуют классы Player и Enemy.И игрок, и враг содержат спрайтовый объект (из API SFML), который выглядит следующим образом:
class Player : Entity
{
sf::Sprite sprite
}
Игрок и враг создаются внутри вектора, настроенного так:
class EntityManager
{
public:
void CollisionCheck();
private:
std::vector<Entity*> entityVector;
}
Я хочу использовать функцию обнаружения столкновений, которая имеет такую форму:
bool Collision::CircleTest(const sf::Sprite& Object1, const sf::Sprite& Object2)
Поэтому я пытаюсь сделать что-то вроде этого:
void EntityManager::ColCheck()
{
if (Collision::CircleTest(entityVector[0].sprite, entityVector[1].sprite))
{
cout << "COLLISION\n";
}
}
Но я получаюэта ошибка компиляции:
ошибка: запрос на член 'sprite' в
'((EntityManager *) this) -> EntityManager :: entityVector.std :: vector <_Tp,_Alloc> :: operator [] с _Tp = Entity *, _Alloc = std :: allocator ', который имеет неклассовый тип' Entity * '
Как передать объект спрайта из этихклассы внутри вектора для функции столкновения?