2013-07-16 25 views
0

我在平臺上工作,我需要一些非常基本的碰撞,我似乎無法想出自己。它似乎總能找到一種方法來解決問題,從屏幕上飛出去,或者卡在天花板上。如何在處理中創建矩形衝突?

這是我到目前爲止有:

if (player.y-8+player.height>loc.y && player.y<loc.y+height-8) { 
     if (player.x+player.width>loc.x && player.x<loc.x+8) { 
     player.xvelocity=0; 
     player.x = loc.x-player.width-1; 
     } 
     if (player.x+8>loc.x && player.x<loc.x+width) { 
     player.xvelocity=0; 
     player.x = loc.x+dim+1; 
     } 
    } 



    if (player.x+player.width>loc.x && player.x<loc.x+width) { 
     if (player.y+player.height>loc.y && player.y<loc.y+8) { 
     player.yvelocity=0; 
     player.y = loc.y-player.height; 
     ground = true; 
     } 
     if (player.y+8>loc.y && player.y<loc.y+height) { 
     player.yvelocity=0; 
     player.y = loc.y+dim; 
     } 
    } 

播放器的寬度爲15,高度爲25,方形的寬度爲16,高度爲16

我有嘗試在互聯網上的其他地方尋找答案,但我得到的是碰撞檢測(檢查兩個物體是否相交),我已經知道該如何做。謝謝。

另外我正在研究從正方形/矩形的碰撞。

+0

如果移動物體的速度過高,可能會發生故障飛行。如果在一次更新中物體一直移動通過​​對撞機,那麼您將無法檢測到碰撞。有不同的方法來防止這種情況發生,但這不再是基本的碰撞。你是否處理高移動速度? – Ma3x

+0

不是特別高的速度,沒有 – Rock48

回答