Пример #1
0
 /// <summary>
 /// Метод для удаления первой буквы в очереди из неё
 /// (в случае, если нужная клавиша была верно нажата)
 /// </summary>
 public void DropFirstLetterFormStream()
 {
     // Блокируем доступ другим потокам - для того, чтобы не было параллельной работы с LettersStream
     lock (UpdatingStateLock) {
         LettersStream.Dequeue();
     }
 }
Пример #2
0
 /// <summary>
 /// Свдинуть отображаемые буквы влево
 /// </summary>
 /// <param name="pushValue">Величина сдвига (в пикселях). По умолчанию величина равна двум</param>
 private void PushQueueForward(int pushValue = 2)
 {
     // Если отображаемых букв нет - двигать нечего, выходим
     if (!LetterStreamIsEmpty)
     {
         // Обходим очередь и уменьшаем координату X каждой вершины на величину сдвига
         foreach (var letter in LettersStream)
         {
             letter.position.X -= pushValue;
         }
         // Если первая буква ушла за линию - она исчезает
         if (LettersStream.Peek().position.X <= 0)
         {
             LettersStream.Dequeue();
             // Оповещаем о том, что одна буква ушла из очереди, т.к. была пропущена
             LetterMissedEvt?.Invoke();
         }
     }
 }