Итак, допустим, у меня есть игрок (который расширяет Sprite), и я хочу обнаружить столкновение между игроком (игрок polygonShape) и многоугольником (объект), как мне поступить в Tiled?И если у меня есть 2 объекта, я должен иметь их обоих в одном объектном слое для столкновения или в отдельных слоях?
А вот код (который ничего не делает):
private void collisionDetection(){
MapLayer mapLayer = map.getLayers().get(1);
MapObjects mapObject = mapLayer.getObjects();
for(PolygonMapObject polygonMapObject: mapObject.getByType(PolygonMapObject.class)){
Polygon polygon = polygonMapObject.getPolygon();
if(CollisonHandler.overlapPolygonRectangle(polygon, player.getBoundingRectangle())){
System.out.println("collision");
}
}
}
public static boolean overlapPolygonRectangle(Polygon p, Rectangle r) {
Polygon rPoly = new Polygon(new float[] { 0, 0, r.width, 0, r.width,
r.height, 0, r.height });
rPoly.setPosition(r.x, r.y);
if (Intersector.overlapConvexPolygons(rPoly, p))
return true;
return false;
}