/// <summary> /// Добавление букв в очередь /// </summary> /// <param name="characters">Символы добавляемых букв</param> public void AddLettersOnControl(char[] characters) { int curLetterX = Width; foreach (var character in characters) { char letter = char.ToUpper(character); float xPos = curLetterX; float yPos = this.Height / 2 - 30; Color color = KeyboardHelper.GetKeyColorForChar(letter); Letter newLetter = new Letter(letter, new PointF(xPos, yPos), color); TextToTypeQueue.Enqueue(newLetter); curLetterX += 30; } }
/// <summary> /// Добавление букв в поток букв /// </summary> /// <param name="letters">Символы добавляемых букв</param> /// <param name="interval">Коэффициент, задающий межбуквенный интервал в потоке (чем он меньше, тем меньше интервал)</param> public void AddLettersToStream(char[] letters, int interval) { int circleRadius = Height / 2; int intervalVal = interval * circleRadius; // = радиус кольца на интервальный коэффициент int curLetterX = Width; foreach (var c in letters) { char letter = char.ToUpper(c); // Добавляемая буква появляется на правой границе элемента управления float xPos = curLetterX; float yPos = (circleRadius + 15) - rand.Next(circleRadius - 10); Color color = KeyboardHelper.GetKeyColorForChar(letter); // Формируем новую букву и добавляем её Letter addingLetter = new Letter(letter, new PointF(xPos, yPos), color); LettersStream.Enqueue(addingLetter); curLetterX += intervalVal; } }