【发布时间】:2011-06-06 22:52:42
【问题描述】:
我有一个实体基类,它继承了 Player 和 Enemy 类。玩家和敌人都包含一个精灵对象(来自 SFML api),如下所示:
class Player : Entity
{
sf::Sprite sprite
}
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";
}
}
但是我得到这个编译错误:
错误:在
中请求成员“sprite”‘((EntityManager*)this)->EntityManager::entityVector.std::vector<_tp _alloc>::operator[] with _Tp = Entity*, _Alloc = std::allocator',其中 属于非类类型“Entity*”
如何将向量中这些类的精灵对象传递给碰撞函数?
【问题讨论】: