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

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

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

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

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

Button и мыши перемещением батона хлеба, игрок может отражать сыр вверх таким образом, чтобы уничтожить как можно больше помидоров за меньшее время, набирая при этом очки.

      Добавляем в наш проект (из отмеченной выше статьи или из Интернета) файл изображения помидора tomato.gif по стандартной схеме, а именно: в меню Project выбираем Add Existing Item, в этой панели в окне “Files of type” выбираем “All Files”, в центральном окне находим и выделяем имя файла и щёлкаем кнопку Add (или дважды щёлкаем по имени файла). В панели Solution Explorer мы увидим этот файл.

      Теперь этот же файл tomato.gif встраиваем в проект в виде ресурса по разработанной выше схеме, а именно: в панели Solution Explorer выделяем появившееся там имя файла, а в панели Properties (для данного файла) в свойстве Build Action (Действие при построении) вместо заданного по умолчанию выбираем значение Embedded Resource (Встроенный ресурс).

      Рис. 5.7. Помидоры – мишени.

      Рис. 5.8. Помидоры исчезают после попадания в них сыра.

      Для программной реализации рисования и уничтожения помидоров после попадания в них сыра, в классе Form1 нашего проекта записываем следующий код.

      Листинг 5.4. Переменные и методы для помидоров (tomatoes).

      'Объявляем объект класса System.Drawing.Image для продукта:

      Dim tomatoImage As Image

      'Position and state of tomato

      Structure tomato

      Public rectangle As Rectangle

      Public visible As Boolean

      End Structure

      ' Spacing between tomatoes. Set once for the game

      Dim tomatoSpacing As Integer = 4

      ' Height at which the tomatoes are drawn. Will change

      ' as the game progresses. Starts at the top.

      Dim tomatoDrawHeight As Integer = 4

      ' The number of tomatoes on the screen. Set at the start

      ' of the game by initialiseTomatoes.

      Dim noOfTomatoes As Integer

      ' Positions of the tomato targets.

      Dim tomatoes() As tomato

      ' called once to set up all the tomatoes.

      Sub initialiseTomatoes()

      noOfTomatoes = (Me.ClientSize.Width – tomatoSpacing) / _

      (tomatoImage.Width + tomatoSpacing)

      ' create an array to hold the tomato positions

      ReDim tomatoes(noOfTomatoes)

      ' x coordinate of each potato

      Dim tomatoX As Integer = tomatoSpacing / 2

      Dim i As Integer

      For i = 0 To tomatoes.Length – 1

      tomatoes(i).rectangle = _

      New Rectangle(tomatoX, tomatoDrawHeight, _

      tomatoImage.Width, tomatoImage.Height)

      tomatoX = tomatoX + tomatoImage.Width + tomatoSpacing

      Next

      End Sub

      ' Called to place a row of tomatoes.

      Sub placeTomatoes()

      Dim i As Integer

      For i = 0 To tomatoes.Length – 1

      tomatoes(i).rectangle.Y = tomatoDrawHeight

      tomatoes(i).visible = True

      Next

      End Sub

      Приведённый выше код в теле метода Form1_Paint заменяем на тот, который дан на следующем листинге.

      Листинг 5.5. Метод для рисования изображения.

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

      ByVal e As System.Windows.Forms.PaintEventArgs) _

      Handles MyBase.Paint

      'Если необходимо, создаём новый буфер:

      If (backBuffer Is Nothing) Then

      backBuffer = New Bitmap(Me.ClientSize.Width, _

      Me.ClientSize.Height)

      End If

      'Создаём объект класса Graphics из буфера:

      Using g As Graphics = Graphics.FromImage(backBuffer)

      'Очищаем форму:

      g.Clear(Color.White)

      'Рисуем изображение в буфере backBuffer:

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