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

Чтение книги онлайн.

Читать онлайн книгу Справочник Жаркова по проектированию и программированию искусственного интеллекта. Том 4: Программирование на Visual Basic искусственного интеллекта - Валерий Алексеевич Жарков страница 30

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

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

+= ySpeed

      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 (по-русски:

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