Другой метод, который я могу придумать, будет работать с простыми объектами, которые можно построить с использованием Path s.
Когда у вас есть два объекта, границы которых представлены путями, вы можете попробовать это:
Path path1 = new Path();
path1.addCircle(10, 10, 4, Path.Direction.CW);
Path path2 = new Path();
path2.addCircle(15, 15, 8, Path.Direction.CW);
Region region1 = new Region();
region1.setPath(path1, clip);
Region region2 = new Region();
region2.setPath(path2, clip);
if (!region1.quickReject(region2) && region1.op(region2, Region.Op.INTERSECT)) {
// Collision!
}
Когда у вас есть объекты в виде контуров, вы можете нарисовать их напрямую, используя drawPath () .Вы также можете выполнить движение с помощью transform () по пути.