我在使用TiledMap进行碰撞检测时遇到问题。 在tilesMap中,我有一个rectangleMapObject,然后我有一个精灵,它停留在渲染TiledMap的相机的相同相机矩阵中。 精灵向上移动。
这是主要代码:
//tiledmap is my object that wrapper tiledmap class
public static boolean collision(Sprite car){
ArrayList<RectangleMapObject> objectsLayer=getObjectsFromLayer("layerCollision");
return objectsLayer.get(0).getRectangle().overlaps(car.getBoundingRectangle());
}
public static ArrayList<RectangleMapObject> getObjectsFromLayer(String layerName){
ArrayList<RectangleMapObject> array=new ArrayList<RectangleMapObject>();
MapLayer layer=tiledMap.getMap().getLayers().get(layerName);
if(layer!=null){
MapObjects objects=layer.getObjects();
for(MapObject object : objects)
if (object instanceof RectangleMapObject)
array.add(((RectangleMapObject) object));
}
return array;
}
我的问题是,即使精灵位于矩形之上,第一种方法也总是返回false。
那是什么错误?
尝试一下我也做了这个:
return car.getBoundingRectangle().overlaps(car.getBoundingRectangle());
但它总是返回