我有一个方法检查玩家和物品是否相交,并将物品添加到库存中,但该方法似乎只在矩形完全重叠并且物品是除非我在专门小组中专门说明,否则不会设置为空。否则,该项目不断在面板上移动,就好像什么都没发生过一样。检查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