Справочник Жаркова по проектированию и программированию искусственного интеллекта. Том 4: Программирование на Visual Basic искусственного интеллекта. Валерий Алексеевич Жарков
Чтение книги онлайн.
Читать онлайн книгу Справочник Жаркова по проектированию и программированию искусственного интеллекта. Том 4: Программирование на Visual Basic искусственного интеллекта - Валерий Алексеевич Жарков страница 30
Else
cy -= ySpeed
End If
If ((cy + cheeseImage.Height) >= Me.ClientSize.Height) Then
goingDown = False
'В момент столкновения подаем звуковой сигнал Beep:
Beep()
End If
If (cy <= 0) Then
goingDown = True
'В момент столкновения подаем звуковой сигнал Beep:
Beep()
End If
'Задаём прямоугольникам координаты объектов:
cheeseRectangle.X = cx
cheeseRectangle.Y = cy
breadRectangle.X = bx
breadRectangle.Y = by
' check for collisions.
If (goingDown) Then
' only bounce if the cheese is going down
If (cheeseRectangle.IntersectsWith(breadRectangle)) Then
'В момент столкновения подаем звуковой сигнал Beep:
Beep()
' we have a collision
Dim rightIn As Boolean = breadRectangle.Contains( _
cheeseRectangle.Right, _
cheeseRectangle.Bottom)
Dim leftIn As Boolean = breadRectangle.Contains( _
cheeseRectangle.Left, _
cheeseRectangle.Bottom)
' now deal with the bounce
If (rightIn And leftIn) Then
' bounce up
goingDown = False
Else
' bounce up
goingDown = False
' now sort out horizontal bounce
If (rightIn) Then
goingRight = False
End If
If (leftIn) Then
goingRight = True
End If
End If
End If
Else
' only destroy tomatoes of the cheese is going up
Dim i As Integer
For i = 0 To tomatoes.Length – 1
If (Not tomatoes(i).visible) Then
Continue For
End If
If (cheeseRectangle.IntersectsWith( _
tomatoes(i).rectangle)) Then
'В момент столкновения подаем сигнал Beep:
Beep()
' hide the tomato
tomatoes(i).visible = False
' bounce down
goingDown = True
' update the score
scoreValue = scoreValue + 10
'Конвертируем очки scoreValue в тип String
'и выводим на экран:
messageString = "Очки: " & _
Convert.ToString(scoreValue)
' only destroy one at a time
'Чтобы помидоры уничтожались не по два,
'а по одному помидору: Exit For:
Exit For
End If
Next
End If
End Sub 'Конец метода updatePositions.
В режиме выполнения (Build, Build Selection; Debug, Start Without Debugging), управляя летающим сыром при помощи батона хлеба, кнопок Button и мыши, мы получили 20 очков за 2 сбитых помидора (рис. 5.9) и 50 очков за 5 сбитых помидоров (рис. 5.10).
Отметим, что для управления игрой в дополнение или вместо кнопок Button (чтобы не загромождать форму Form1) можно использовать также и клавиши клавиатуры по описанной далее методике.
Итак, в этой главе мы разработали методику обнаружения столкновений, программирования уничтожений летающих объектов и подсчёта очков.
Глава 6. Методология воспроизведения звуковых файлов
6.1. Основные методики звукового сопровождения приложений
Выше мы уже применяли воспроизведение звуковых файлов по упрощённому варианту и звуковой эффект в виде звукового сигнала Beep (по-русски: