Я делаю простую игру в java, и у меня есть много методов, которые проверяют, сталкиваются ли два объекта. Объекты включают человека, врага, стрелы, стены, монеты и т. Д. У меня есть куча методов, которые рассчитывают для каждого типа столкновения, которое может произойти, то они выглядят так:Уменьшение числа методов столкновения в 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 и object b в качестве аргументов, но компилятор подсчитал, что не может найти getBounds() для объектов.
Используйте общий интерфейс этих классов вместо 'Object'. Этот интерфейс должен содержать метод 'Rectangle getBounds();' и эти классы должны его реализовать. Кроме того, вы можете заменить последние две строки на 'return a1.intersects (b1);' – jlordo
См. [Этот ответ] (http://stackoverflow.com/a/14575043/418556) для примера обнаружения столкновений с использованием 'Shape 'экземпляры. –