- 图层遮盖判定算法实现2
- 1. 点击时调用置灰
- 2. 解决方式
图层遮盖判定算法实现2
学习于bilibili 尚学堂官方
1. 点击时调用置灰
在Brand中
if (brand.getGray()){//灰色return;}else {brand.getParent().remove(brand);//通过父容器删掉自己 一般树形结构使用此方式//也需要判断 整个地图所有牌哪些置灰map.compareAll();}
此时找不到map对象
故把TestRenderMap中的map对象设为static
public static Map map = MapUtil.build(3);
Brand中
TestRenderMap.map.compareAll();
此时只是在页面ui树中删除了对象,Cell的state和Brand没有删除
故还是无法将灰色变彩色
2. 解决方式
在Brand中定义单元格对象,并提供get和set方法
//定义单元格对象private Cell cell;public Cell getCell() {return cell;}public void setCell(Cell cell) {this.cell = cell;}
LayerUtil.java
for (int col = 0; col < cells[row].length; col++) {// System.out.println(row + "-" + col);Brand brands1 = brands[flag++];Cell cell = new Cell();cell.setState(1);cell.setBrand(brands1);brands1.setCell(cell);cells[row][col] = cell;//把之前空的图层设置了值}
Brand.java
//此时只是在页面ui树中删除了对象,Cell的state和Brand没有删除brand.getParent().remove(brand);//通过父容器删掉自己 一般树形结构使用此方式//解决 既要删除UI的图片 也要删除数据模型的数据和对应状态cell.setState(0);cell.setBrand(null);//也需要判断 整个地图所有牌哪些置灰TestRenderMap.map.compareAll();