クラス Player と Enemy が継承する Entity ベースクラスがあります。
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";
}
}
これにより、次のコンパイル エラーが発生します。
「class Entity」には「sprite」という名前のメンバーがありません</p>
上記の方法を使用してプレイヤーと敵のスプライトにアクセスできるように、エンティティでダミーのスプライトを作成する方法がわかりません。これは可能ですか?
私は困惑しており、誰でも提供できる助けをいただければ幸いです。