Esempio n. 1
0
 //鼠标按下,如果此时已经是输掉的状态则操作无效
 //如果方块未被点击,笑脸变换
 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;
     }
 }
Esempio n. 2
0
    /// <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);
    }