【发布时间】:2011-01-11 06:06:05
【问题描述】:
我有一个 Entity 基类,它继承了 Player 和 Enemy 类。
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)
}
Player 和 Enemy 是在一个向量中创建的,向量设置如下:
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’的成员
我不确定如何在 Entity 中创建一个虚拟精灵,以便我可以使用上述方法访问玩家和敌人的精灵。这可能吗?
我很难过,如果有人能提供任何帮助,我将不胜感激!
【问题讨论】: