Валерий Алексеевич Жарков

Справочник Жаркова по проектированию и программированию искусственного интеллекта. Том 4: Программирование на Visual Basic искусственного интеллекта


Скачать книгу

код, как показано на следующем листинге.

      Листинг 2.6. Код для приостановки и возобновления анимации. Вариант 1.

      'Объявляем булеву переменную OffOn и задаём ей значение False:

      Dim OffOn As Boolean '= False по умолчанию.

      Private Sub Button2_Click(ByVal sender As System.Object, _

      ByVal e As System.EventArgs) Handles Button2.Click

      'Задаём чередование остановки и возобновления анимации

      'после каждого щелчка кнопки Button:

      If (OffOn = False) Then

      'Останавливаем анимацию:

      Timer1.Enabled = False

      'Изменяем значение OffOn на противоположное:

      OffOn = True

      Else

      'Возобновляем анимацию:

      Timer1.Enabled = True

      'Изменяем значение OffOn на противоположное:

      OffOn = False

      End If

      End Sub

      Этот листинг можно записать короче:

      Листинг 2.7. Код для приостановки и возобновления анимации. Вариант 2.

      'Объявляем булеву переменную OffOn и задаём ей значение True:

      Dim OffOn As Boolean = True

      Private Sub Button2_Click(ByVal sender As System.Object, _

      ByVal e As System.EventArgs) Handles Button2.Click

      OffOn = Not OffOn

      Timer1.Enabled = OffOn

      End Sub

      Для проверки реализации алгоритма запускаем программу, например, так: Ctrl+F5. В ответ Visual Basic выполняет программу и выводит форму в режиме выполнения.

      На этой форме с заданной нами частотой в 500 миллисекунд (или 0,5 секунды) заголовок “Калькулятор (Calculator)” сменяется на “Калькулятор с анимацией (Calculator with animation)” (рис. 2.11), и таким образом создаётся эффект анимации.

      Анимация прекращается и возобновляется поочерёдно после каждого щелчка кнопки (рис. 2.12). Так как в свойстве Text мы записали &Stop/Start Animation с символом &, то первая буква S подчёркнута, и, следовательно, эту кнопку можно нажать не только мышью, но и комбинацией клавиш Alt+s.

      Аналогично можно разработать другие варианты анимации с одним или несколькими компонентами Timer (Таймер) на любой форме, а также другие варианты приостановки и возобновления анимации и мультипликации, как будет показано далее.

      Рис. 2.12.

      2.9. Методика подачи звукового сигнала

      Целесообразно, чтобы в работающем приложении эффекты анимации и мультипликации сопровождались звуковыми эффектами, и самым простым из них является подача звукового сигнала. Подача звукового сигнала основана на том, что в процедуру по обработке какого-либо события в данном приложении мы записываем стандартную функцию Beep().

      Если мы запишем эту функцию Beep() в процедуру для обработки события Tick таймера, то звуковой сигнал будет периодически создаваться согласно генерируемому событию Tick с заданным нами интервалом времени Interval. Если мы хотим ограничить число звуковых сигналов величиной N, то выше процедуры объявляем и задаём (инициализируем, приравнивая, например, 10) эту переменную N:

      Dim N As Integer = 10

      а в самой процедуре организовываем цикл по статической переменной i:

      Static i As Integer

      i = i + 1

      If i <= N Then

      Beep()

      End If

      В дальнейшем мы разработаем программы для подачи звукового сигнала в различные моменты анимации, например, в момент каждого удара вечно прыгающего мяча