//鼠标按下,如果此时已经是输掉的状态则操作无效 //如果方块未被点击,笑脸变换 void OnMouseDown() { if (lost) { return; } mousedScript = this; if (state == State.Unrevealed) { faceHolder.setState(Done_face_controller.face_state.ooh); renderPhoto.sprite = Done_Photo.get().ooh; } }
/// <summary> /// 遍历周围的以点击方块为中心的3*3数组,将在雷区内的方块存入result列表中 /// </summary> /// <param name="origin"></param> /// <returns></returns> public List <Done_tile_script> GetAdjacentTiles(Done_tile_script origin) { //被点击的方块所处于整个雷区这个二维数组的位置 int startX = origin.x; int startY = origin.y; //新建一个结果列表用于return周围的具体方块 List <Done_tile_script> result = new List <Done_tile_script>(); //对周围八个方块进行遍历,如果被点击的方块处于边缘,则只需遍历五个方块 //如果处于角落,则只需遍历三个方块 for (int dx = -1; dx <= 1; dx++) { int newX = startX + dx; if (newX < 0 || newX >= tilesAcross) { continue; } for (int dy = -1; dy <= 1; dy++) { int newY = startY + dy; if (newY < 0 || newY >= tilesDown) { continue; } if (dx == 0 && dy == 0) { continue; } result.Add(grid[newX, newY]); } } return(result); }