Пример #1
0
        private static void FillHoldPath(ref char[][] output, int row, int col, MemoNote.Direction direction, int span)
        {
            var rowOffset = RowOffset[direction];
            var colOffset = ColOffset[direction];

            for (var i = 0; i < span; i++)
            {
                row -= rowOffset;
                col -= colOffset;

                Debug.Assert(!CircleNumberCharset.Contains(output[row][col]));

                output[row][col] = output[row][col] == DefaultEmpty ? DefulatPath[direction] : DefaultCross;
            }
            output[row][col] = DefaultArrow[direction];
        }
Пример #2
0
        private static void SetHoldNote(MemoScene scene, int row, int col, MemoNote.Direction direction)
        {
            var rowOffset = RowOffset[direction];
            var colOffset = ColOffset[direction];

            for (var span = 1;; span++)
            {
                row += rowOffset;
                col += colOffset;

                if (scene[row, col].Type == MemoNote.NoteType.Click)
                {
                    scene[row, col] = new MemoNote
                    {
                        Type          = MemoNote.NoteType.Hold,
                        Ordinal       = scene[row, col].Ordinal,
                        HoldSpan      = span,
                        HoldDirection = direction
                    };
                    break;
                }
            }
        }