Разработаем методику проектирования и программирования типичной и широко распространённой игры в теннис с мячом и двумя ракетками. Если в предыдущей книге (с сайта ZharkovPress.ru) игру в теннис мы разработали на основе графических файлов, то в данной главе эту же игру разработаем на основе стандартных элементов управления с панели инструментов Toolbox, следуя проекту [см. Список литературы: Game Tiny Tennis from the website of Microsoft corporation], но с нашими усовершенствованиями для современной версии Visual Studio.
Кратко, сюжет игры заключается в следующем. После старта игры появляется форма Form1, слева на форме (точнее, в клиенткой области формы) находится ракетка Игрока 1, справа – ракетка Игрока 2 (по первому режиму игры) или Компьютера в роли Игрока 2 (по второму режиму игры). Мяч произвольным образом прыгает в пределах 4-х границ формы, отскакивая от верхней и нижней границ формы и двух ракеток. Левая граница формы – это ворота Игрока 1, а правая граница формы – это ворота Компьютера в роли Игрока 2 или самого Игрока 2. Если мяч коснётся левой или правой границ формы, считается, что один игрок забил мяч в ворота другого игрока, счёт увеличивается в пользу забившего мяч игрока, а мяч снова появляется в произвольной точке формы и летит в произвольном направлении, заданном генератором случайных числе класса Random.
В задачу пользователя в роли Игрока 2 (по первому режиму игры, заданному по умолчанию) входит – при помощи клавиш со стрелками перемещать правую ракетку по вертикали снизу вверх и сверху вниз таким образом, чтобы отбить мяч и не дать мячу коснуться правой границы формы, так как после каждого такого касания (пропущенного в ворота мяча) Игроку 1 начисляется 1 очко. Пользователь в роли Игрока 2 должен стараться (по возможности) ракеткой отбить мяч таким образом, чтобы забить его в ворота Игрока 1.
Левая ракетка Игрока 1 старается отбить мяч и не дать мячу коснуться левой границы формы, так как после каждого такого касания (пропущенного в ворота мяча) Компьютеру в роли Игрока 2 начисляется 1 очко (как забившему мяч).
Таким образом, для заданного по умолчанию первого режима игры (Игрок 1 против пользователя в роли Игрока 2), в методе-конструкторе Form1 используется строка:
_player2 = new Bat (pictureBox2, ClientSize. Width – 30 —