У меня есть базовый класс Entity, классы Player и Enemy Inherit.
class Entity
{
public:
virtual void Update(sf::RenderWindow &window) {};
virtual void Draw(sf::RenderWindow &window) {};
};
И игрок, и враг содержат спрайтовый объект, который выглядит следующим образом:
class Player : Entity
{
public:
sf::Sprite sprite
void Update(sf::RenderWindow &window);
void Draw(sf::RenderWindow &window)
}
Игрок и Враг созданы внутри вектора, который настроен так:
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";
}
}
Это приводит к следующей ошибке компиляции:
У класса Entity нет члена с именем sprite. 1018
Я не уверен, как создать фиктивный спрайт в Entity, чтобы я мог получить доступ к спрайту игрока и врага, используя вышеуказанный метод. Это возможно?
Я в замешательстве и буду очень признателен за любую помощь, которую кто-либо может предложить!