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

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

СКАЧАТЬ style="font-size:15px;">      }

      if (goingDown)

      {

      cy += ySpeed;

      }

      else

      {

      cy -= ySpeed;

      }

      //That the cheese did not come for the button3.Location.Y:

      if ((cy + cheeseImage.Height) >= button3.Location.Y)

      {

      goingDown = false;

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

      Microsoft.VisualBasic.Interaction.Beep();

      }

      if (cy <= 0)

      {

      goingDown = true;

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

      Microsoft.VisualBasic.Interaction.Beep();

      }

      //We set to rectangles of coordinate of objects:

      cheeseRectangle.X = cx;

      cheeseRectangle.Y = cy;

      breadRectangle.X = bx;

      breadRectangle.Y = by;

      //We check the collision of objects

      //taking into account the tomatoes:

      if (goingDown)

      {

      // only bounce if the cheese is going down

      if (cheeseRectangle.IntersectsWith(breadRectangle))

      {

      //At the time of collision,

      //the Beep signal is given:

      Microsoft.VisualBasic.Interaction.Beep();

      // we have a collision

      bool rightIn = breadRectangle.Contains(

      cheeseRectangle.Right,

      cheeseRectangle.Bottom);

      bool leftIn = breadRectangle.Contains(

      cheeseRectangle.Left,

      cheeseRectangle.Bottom);

      // now deal with the bounce

      if (rightIn & leftIn)

      {

      // bounce up

      goingDown = false;

      }

      else

      {

      // bounce up

      goingDown = false;

      // now sort out horizontal bounce

      if (rightIn)

      {

      goingRight = false;

      }

      if (leftIn)

      {

      goingRight = true;

      }

      }

      }

      }

      else

      {

      // only destroy tomatoes of the cheese is going up

      for (int i = 0; i < tomatoes.Length; i++)

      {

      if (!tomatoes[i].visible)

      {

      continue;

      }

      if (cheeseRectangle.IntersectsWith(

      tomatoes[i].rectangle))

      {

      //At the time of collision,

      //the Beep signal is given:

      Microsoft.VisualBasic.Interaction.Beep();

      // hide the tomato

      tomatoes[i].visible = false;

      // bounce down

      goingDown = true;

      // only destroy one at a time

      break;

      }

      }

      }

      } //End of the method updatePositions.

      В режиме выполнения (Build, Build Selection; Debug, Start Without Debugging) несколько i-х помидоров появляются в верхней части экрана в качестве мишеней (рис. 5.7), которые исчезают после попадания в них летающего сыра (рис. 5.8).

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

      К разработке методики подсчёта очков в игре мы и приступаем.

      5.6. Методика подсчёта очков в игре

      Игра отличается от любого другого приложения тем, что один или несколько игроков набирают в игре очки, и победителем считается игрок, набравший наибольшее количество очков. А после набора определённого СКАЧАТЬ