Отслеживание коллизий SurfaceView

Интересует такой вопрос, пишу кликер на SurfaceView.У меня есть обьект и мне нужно отследить коллизию с другим обьектом. Знаю что можно сравнивать вершины обьекта или рисовать Rect и через метод intersect(Второй рект) отследить.Но что делать если один из обьектов повернут, как в таком случае отследить коллизию.


Ответы (1 шт):

Автор решения: Style-7

Начиная с API 19 доступен метод op для анализа пересечения объектов Path, но он относительно медленный. Идея проста: создать главный объект игры как экземпляр класса Path, а затем проверять на пересечение с объектами игрового мира такими же объектами Path. Для ускорения процесса, игровые объекты, которые явно не попадают даже в описанный прямоугольник игрового объекта можно отбрасывать сразу. Path позволяет создавать сложные кривые, смотрите по ссылке.

Path path_for_test = new Path();
if( path_for_test.op( path_main, path_game_object, android.graphics.Path.Op.INTERSECT) ){
    //collision is detected
    //можно использовать метод и с двумя параметрами
}
→ Ссылка