Справочник Жаркова по проектированию и программированию искусственного интеллекта. Том 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
В дальнейшем мы разработаем программы для подачи звукового сигнала в различные моменты анимации, например, в момент каждого удара вечно прыгающего мяча