所以我有一個任務需要我在Player對象和一個Object(一個cube/pyrmaid/sphere真的無所謂)之間發生衝突一個八叉樹用於我的碰撞計算。當玩家與對象發生衝突時,對象需要被刪除。我有一個功能,因爲這樣試圖讓一個對象在C++中碰撞並刪除另一個對象
void BinPart::ProcessCollisions(int &nbrTests, int &nbrCollisions){
if(hasChildren())
{
for(int i = 0; i <= 7; i++)
{
child[i]->ProcessCollisions(nbrTests, nbrCollisions);
}
}
int n = objects.size();
if(n >= 2)
{
for(int i = 0; i < n - 1; i++)
{
for(int j = i + 1; j < n; j++)
{
nbrTests++;
if(player->collidesWith(objects[j]))
{
objects.erase(objects.begin() + j);
}
else
{
if(objects[i]->collidesWith(objects[j]))
{
nbrCollisions++;
}
}
}
}
}
if(n >= 1 && parent != NULL)
{
parent->ProcessBorderCollisions(this, nbrTests, nbrCollisions);
}
}
目前player->collidesWith(objects[j]);
不起作用,因爲球員是「不確定」的頭文件binPart那裏有一個基類對象,其中正在作出的所有對象的向前聲明從。然而,Object *播放器在Game.h中,但我需要binPart才能訪問它。我問我的一位朋友在我的課程中,他有什麼和他幾乎相同的問題。如果需要更多信息,請告訴我。
所以有BinPart.cpp'#包括「Game.h」'。 – aschepler 2013-03-01 20:49:24
我通常不喜歡抱怨語法,但我不知道'... player是否是binPart的頭文件中的「undefined」,或者是binPart的頭文件中是否有前向聲明... ' – 2013-03-01 21:05:20
對不起,在binPart.h頭文件中有類Object的前向聲明。玩家(在Game.h中定義爲Object * player)在binPart.cpp中是未定義的,但我的一個同學的東西的設置與我和他的作品一樣。 – Elssar 2013-03-01 21:08:47