【发布时间】:2013-02-25 02:36:30
【问题描述】:
我正在用 java 制作一个简单的游戏,我有很多方法可以测试两个对象是否发生碰撞。对象包括人、敌人、箭、墙、硬币等。我有一堆方法可以计算可能发生的每种类型的碰撞,它们看起来像这样:
public boolean collide(Arrow a, Enemy b)
{
Rectangle a1 = a.getBounds();
Rectangle b1 = b.getBounds();
if(a1.intersects(b1)) return true;
else return false;
}
是否可以创建一个泛型方法?我尝试使用对象 a 和对象 b 作为参数,但编译器发现它找不到对象的 getBounds()。
【问题讨论】:
-
使用这些类的通用接口而不是
Object。该接口必须包含一个方法Rectangle getBounds();,并且这些类必须实现它。另外,您可以将最后两行替换为return a1.intersects(b1); -
有关使用
Shape实例的碰撞检测示例,请参阅this answer。
标签: java awt collision graphics2d java-2d