Справочник Жаркова по проектированию и программированию искусственного интеллекта. Том 7: Программирование на Visual C# искусственного интеллекта. Издание 2. Валерий Алексеевич Жарков
Чтение книги онлайн.

Читать онлайн книгу Справочник Жаркова по проектированию и программированию искусственного интеллекта. Том 7: Программирование на Visual C# искусственного интеллекта. Издание 2 - Валерий Алексеевич Жарков страница 19

СКАЧАТЬ показано в следующем коде:

      if (goingRight)

      {

      cx += xSpeed;

      }

      else

      {

      cx -= xSpeed;

      }

      Изменяя значение xSpeed, можно увеличить или уменьшить горизонтальную составляющую (по оси “x”) скорости объекта.

      Следующий аналогичный код для координаты “y” позволяет изменять вертикальную составляющую скорости объекта:

      if (goingDown)

      {

      cy += ySpeed;

      }

      else

      {

      cy -= ySpeed;

      }

      Увеличивать или уменьшать скорость перемещения объекта можно при помощи переменной change в следующем методе:

      private void changeSpeed(int change)

      {

      xSpeed += change;

      ySpeed += change;

      }

      В этом коде целочисленная переменная change задана в виде параметра метода changeSpeed. Положительное значение переменной change увеличивает перемещение изображения через каждый Interval времени срабатывания таймера и, тем самым, увеличивает скорость, отрицательное – уменьшает.

      Если мы хотим подавать звуковой сигнал в различные моменты анимации, например, в момент каждого удара объекта о границу (внутри которой перемещается объект), то поступаем следующим образом. Согласно разработанной выше методике использования в нашем приложении метода (функции) из любого другого языка, на первом этапе необходимо создать ссылку на тот язык, например, на Visual Basic. Для этого в меню Project выбираем команду Add Reference, в панели Add Reference на вкладке (.NET) выбираем ссылку Microsoft.VisualBasic и щёлкаем кнопку OK. А в соответствующий метод, например, updatePositions записываем строку:

      Microsoft.VisualBasic.Interaction.Beep();

      в тех местах, где нам нужен этот сигнал. Таким образом, в данном проекте приведённый выше метод updatePositions заменяем на следующий.

      Листинг 4.6. Отскок объекта от границ.

      //The current increment of movement on an axis "x":

      int xSpeed = 1;

      //The current increment of movement on an axis "y":

      int ySpeed = 1;

      //The method for increase in traverse speed:

      private void changeSpeed(int change)

      {

      xSpeed += change;

      ySpeed += change;

      }

      //The method for change of coordinates of an object:

      private void updatePositions()

      {

      if (goingRight)

      {

      cx += xSpeed;

      }

      else

      {

      cx -= xSpeed;

      }

      if ((cx + cheeseImage.Width) >= this.ClientSize.Width)

      {

      goingRight = false;

      //At time of collision, the sound signal Beep is given:

      Microsoft.VisualBasic.Interaction.Beep();

      }

      if (cx <= 0)

      {

      goingRight = true;

      //At time of collision, the sound signal Beep is given:

      Microsoft.VisualBasic.Interaction.Beep();

      }

      if (goingDown)

      {

      cy += ySpeed;

      }

      else

      {

      cy -= ySpeed;

      }

      if СКАЧАТЬ