我正在開發一個Java遊戲(但開發語言並不重要),包括諸如球或小圓球等圓形對象,現在正在處理碰撞。 我使用一個計時器,所以在每一幀我檢查是否碰撞發生。碰撞檢測:圓角對象
下面是一個表示對象右上角的圖。
的對象的中心由點[0,0]來表示,它的半徑是10px的,單位是像素。
現在,如果我的對象(例如,obj_1
)是正方形/菱形(藍線),找到,如果另一個(obj_2
)碰撞它,我只是要得到他們的座標,並通過檢查Math.abs(obj_1.x - obj_2.x) + Math.abs(obj_1.y - obj_2.y) <= radius
我會知道,如果有碰撞。
但是,這個問題對於圓形(紅線)來說更加棘手,因爲它需要更多的空間,而且這個佔用的空間並沒有被直線限制。當然,我將必須舍入一些值(例如在上圖中,如果我想檢查x = 2
處的碰撞,我將不得不圍繞看起來像9.5到10的y值)。但我根本不知道如何得到這個公式。任何幫助將非常感激。
完美,很好,完美解決了它。非常感謝! – Rob 2013-02-12 20:06:12