示例#1
0
    private void Movie(Dictionary <Vector2Int, Game2048ChessData> chessboard, Vector2Int current, List <Vector2Int> path)
    {
        Game2048ChessData chessData = chessboard[current];

        if (chessData == null)
        {
            return;
        }

        for (int i = 0; i < path.Count; i++)
        {
            Vector2Int target = path[i];

            Game2048Chessboard.MovieState movieState = chessData.GetMovieState(chessboard[path[i]]);
            switch (movieState)
            {
            case Game2048Chessboard.MovieState.Empty:
                Debug.LogError("有问题");
                return;

            case Game2048Chessboard.MovieState.Movie:
                chessboard[current] = null;
                chessboard[target]  = chessData;
                current             = target;
                break;

            case Game2048Chessboard.MovieState.Stop:
                return;

            case Game2048Chessboard.MovieState.Merge:
                chessData.Merge();

                chessboard[current] = null;
                chessboard[target]  = chessData;
                return;
            }
        }
    }