我有一個方法檢查玩家和物品是否相交,並將物品添加到庫存中,但該方法似乎只在矩形完全重疊並且物品是除非我在專門小組中專門說明,否則不會設置爲空。否則,該項目不斷在面板上移動,就好像什麼都沒發生過一樣。檢查java中兩個對象之間的碰撞
public boolean obtainItem(Item item)
{
if (item.moveable)
{
Rectangle p = getBounds();
Rectangle i = item.getBounds();
if (p.intersects(i))
{
inventory.add(item);
i = null;
System.out.println("hello");
return true;
}
}
return false;
}
爲我的getBounds的代碼()方法是
公共矩形的getBounds() { 界限=新的Rectangle(X,Y,40,40); 返回界限; }
而且它返回正確的邊界
你的代碼看起來不錯。打印出兩者的界限,並確保這些都是你期望他們的結果 – iluxa 2011-04-07 18:47:29
而你不認爲向我們展示'Rectangle.intersects()'方法會有用嗎? – dty 2011-04-07 18:47:44
這實際上是java.awt.Rectangle方法,對(或者至少我希望如此) – iluxa 2011-04-07 18:51:10