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

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


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

Методы для обработки событий.

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

      ByVal e As System.EventArgs) Handles Button3.Click

      'Перемещаем объект вверх:

      by -= ySpeed

      End Sub

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

      ByVal e As System.EventArgs) Handles Button4.Click

      'Перемещаем объект вниз:

      by += ySpeed

      End Sub

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

      ByVal e As System.EventArgs) Handles Button5.Click

      'Перемещаем объект влево:

      bx -= xSpeed

      End Sub

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

      ByVal e As System.EventArgs) Handles Button6.Click

      'Перемещаем объект вправо:

      bx += xSpeed

      End Sub

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

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

      Handles MyBase.MouseMove

      'Определяем координаты указателя мыши на форме:

      Dim mouseX As Integer = e.X

      Dim mouseY As Integer = e.Y

      'Задаём координаты хлеба, равные координатам мыши:

      bx = mouseX

      by = mouseY

      End Sub

      Для удобства, задаём другие значения начальным координатам хлеба (например,

      Dim bx As Integer = 150 : Dim by As Integer = 200)

      в нижней части формы.

      После запуска программы (Build, Build Selection; Debug, Start Without Debugging) сыр самостоятельно (без нашего участия) перемещается по экрану, отталкиваясь от границы со звуковым сигналом.

      А после нажатий мышью четырёх кнопок Вверх, Вниз, Влево и Вправо мы можем перемещать батон хлеба в соответствующих четырёх направлениях по всему экрану (рис. 4.9).

      На рис. 4.9 видно, что по умолчанию на форме выделена первая кнопка Button (на этой кнопке размещён фокус (Focus) программы), и поэтому данную кнопку мы можем нажать не только мышью, но и клавишей Enter, после чего скорость перемещения сыра возрастёт пропорционально количеству нажатий. Если мы желаем, чтобы по умолчанию была выделена другая, например, вторая кнопка Button, то в каком-либо методе, например, в методе Form1_Paint следует записать известный код (button2.Focus();). В режиме выполнения мы можем перемещать фокус, например, клавишами со стрелками или Tab на любую кнопку на форме, после чего воздействовать на эту кнопку клавишей Enter.

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

      Следовательно, мы решили задачу по управлению объектом (в виде батона хлеба) при помощи элементов управления, например, кнопок Button и мыши.

      Аналогично, как для события MouseMove, для управления игрой можно использовать методы-обработчики других событий мыши, которые имеются в панели Properties на вкладке Events для формы Form1 (рис. 4.11).

      Рис. 4.11. События для управления игрой.

      Отметим, что для управления игрой вместо кнопок Button (чтобы не загромождать форму) и мыши можно использовать и клавиши клавиатуры по описанной далее методике.

      Однако при перемещении сыр может перекрыть батон хлеба (рис. 4.10), хотя по правилам игры, напомним, пользователь должен управлять перемещением хлеба, не давая сыру упасть вниз, а маленький кусочек сыра при столкновении должен отскочить от большого батона хлеба в противоположном направлении. Поэтому перейдём к решению задачи о столкновении летающих объектов (в следующей главе).

      Таким образом,