當我的玩家撞擊物體時,我有一些碰撞檢測工作。但是這隻有當我的玩家x座標和我的座標(這是我角色的中心)相匹配時纔有效。C++車削矩形的碰撞檢測
會做出一個方法返回所有的座標,矢量的球員紋理覆蓋工作,什麼是最好的方式來實現呢?
這是在C正在做++創建一個自上而下的遊戲
當我的玩家撞擊物體時,我有一些碰撞檢測工作。但是這隻有當我的玩家x座標和我的座標(這是我角色的中心)相匹配時纔有效。C++車削矩形的碰撞檢測
會做出一個方法返回所有的座標,矢量的球員紋理覆蓋工作,什麼是最好的方式來實現呢?
這是在C正在做++創建一個自上而下的遊戲
有很多方法可以做到這一點,最簡單的可能(取決於您使用的類等)。 這是最簡單的,但沒有接近最好的地方,或者事實上非常好。這意味着將您的「標記」更改爲矩形的左下角。
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);
}
}
然後,您將不必在碰撞時將移動速度設置爲正常。如果再次設置移動速度,那麼可以在每個之後用其他方法完成。這是一個快速修復,不建議用於您計劃隨時隨地分發的遊戲。
這與我已有的相似。但getY和getX是玩家的中間,所以當玩家的邊緣與我的物體碰撞時,它不會影響它,只有當中間(玩家合作)碰撞時 –
是的,將它們更改爲右下和左下?你使用的是什麼版本的OpenGL?該職位由您定義。剛到左下角。 – user3375989
我不確定你的意思是轉彎。如果不旋轉,你可以閱讀http://stackoverflow.com/tags/aabb/info。 – user2672165