2014-03-03 127 views
0

當我的玩家撞擊物體時,我有一些碰撞檢測工作。但是這隻有當我的玩家x座標和我的座標(這是我角色的中心)相匹配時纔有效。C++車削矩形的碰撞檢測

會做出一個方法返回所有的座標,矢量的球員紋理覆蓋工作,什麼是最好的方式來實現呢?

這是在C正在做++創建一個自上而下的遊戲

+0

我不確定你的意思是轉彎。如果不旋轉,你可以閱讀http://stackoverflow.com/tags/aabb/info。 – user2672165

回答

0

有很多方法可以做到這一點,最簡單的可能(取決於您使用的類等)。 這是最簡單的,但沒有接近最好的地方,或者事實上非常好。這意味着將您的「標記」更改爲矩形的左下角。

void collisions() 
{ 
    //check if the x-coord is between the furthest left and furthest right x coords 
    if(rect.Getx() > someObject.Getx() && rect.Getx() < someObject.Getx() + someObject.GetWidth()) 
    { 
     rect.SetMoveSpeed(0); 
    } 
    if(rect.Gety() > someObject.Gety() && rect.Gety() < someObject.Gety() + someObject.GetHeight()) 
    { 
     rect.setMoveSpeed(0); 
    } 

} 

然後,您將不必在碰撞時將移動速度設置爲正常。如果再次設置移動速度,那麼可以在每個之後用其他方法完成。這是一個快速修復,不建議用於您計劃隨時隨地分發的遊戲。

+0

這與我已有的相似。但getY和getX是玩家的中間,所以當玩家的邊緣與我的物體碰撞時,它不會影響它,只有當中間(玩家合作)碰撞時 –

+0

是的,將它們更改爲右下和左下?你使用的是什麼版本的OpenGL?該職位由您定義。剛到左下角。 – user3375989