Читаем Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript полностью

function moveBall {

// Изменяем координаты x и y.

x += dx;

y += dy;

// Проверяем, попал ли мяч в нижнюю стену.

if (y+ballRadius > bottomWall) {

overshoot = (y+ballRadius) – bottomWall;

y -= overshoot*2;

dy *= -1;

}

// Проверяем, попал ли мяч в верхнюю стену.

if (y-ballRadius < topWall) {

overshoot = topWall – (y-ballRadius);

y += overshoot*2;

dy *= -1;

}

(9) → // Находится ли мяч там, где по нему должна ударить бита?

paddleRight = paddle._x+(paddle._width/2);

if ((x-ballRadius < paddleRight) and !passedPaddle) {

// Находится ли там бита?

paddleTop = paddle._y-(paddle._height/2);

paddleBottom = paddle._y+(paddle._height/2);

if ((y > paddleTop) and (y < paddleBottom)) {

// Удар битой.

overshoot = paddleRight – (x-ballRadius);

x += overshoot*2;

dx += -1;

// Увеличиваем скорость мяча.

dx *= 1.05;

dy *= 1.05;

} else {

// Мяч пропущен, больше ничего не проверяем.

passedPaddle = true;

}

}

(10) → // Находится ли мяч там,

// где должен столкнуться с битой компьютера?

paddleLeft = computerPaddle._x-(computerPaddle._width/2);

if ((x+ballRadius > paddleLeft) and !passedPaddle) {

// Находится ли там бита?

paddleTop = computerPaddle._y-(computerPaddle._height/2);

paddleBottom = computerPaddle_>y+

(computeerPaddle._height/2);

if ((y > paddleTop) and (y < paddleBottom)) {

// Удар битой.

oveershoot = (x+ballRadius) – paddleLeft;

x -= overshoot*2;

dx *= -1;

// Увеличиваем скорость мяча.

dx *= 1.05;

dy *= 1.05;

} else {

// Мяч пропущен, ничего больше не проверяем.

passedPaddle = true;

}

}

(11) → // Проверяем, попал ли мяч в левую стену.

if ((x-ballRadius < leftWall) and passedPaddle) {

Mouse.show;

computerScore++;

if (numBalls == 0) {

gotoAndPlay("game over");

} else {

numBalls–;

gotoAndPlay("start level");

}

}

(12) → // Выполняем аналогичную проверку для правой стены.

if ((x+ballRadius > rightWall) and passedPaddle) {

Mouse.show;

playerScore++;

if (numBalls == 0) {

gotoAndPlay("game over");

} else {

numBalls—;

gotoAndPlay("start level");

}

}

// Устанавливаем новое положение мяча.

ball._x = x;

ball._y = y;

}

Функция movePaddle идентична одноименной функции предыдущей игры. Однако необходимо добавить функцию moveComputerPaddle, управляющую правой битой, которая будет перемещать биту только в том случае, если мяч летит вправо. Бита будет перемещаться вверх, если мяч расположен выше нее, и вниз, если ниже. Скорость передвижения биты устанавливается в начале функции. Чем выше это значение, тем быстрее бита будет реагировать на перемещения мяча.

Перейти на страницу:

Похожие книги

Основы программирования в Linux
Основы программирования в Linux

В четвертом издании популярного руководства даны основы программирования в операционной системе Linux. Рассмотрены: использование библиотек C/C++ и стан­дартных средств разработки, организация системных вызовов, файловый ввод/вывод, взаимодействие процессов, программирование средствами командной оболочки, создание графических пользовательских интерфейсов с помощью инструментальных средств GTK+ или Qt, применение сокетов и др. Описана компиляция программ, их компоновка c библиотеками и работа с терминальным вводом/выводом. Даны приемы написания приложений в средах GNOME® и KDE®, хранения данных с использованием СУБД MySQL® и отладки программ. Книга хорошо структурирована, что делает обучение легким и быстрым. Для начинающих Linux-программистов

Нейл Мэтью , Ричард Стоунс , Татьяна Коротяева

ОС и Сети / Программирование / Книги по IT
97 этюдов для архитекторов программных систем
97 этюдов для архитекторов программных систем

Успешная карьера архитектора программного обеспечения требует хорошего владения как технической, так и деловой сторонами вопросов, связанных с проектированием архитектуры. В этой необычной книге ведущие архитекторы ПО со всего света обсуждают важные принципы разработки, выходящие далеко за пределы чисто технических вопросов.?Архитектор ПО выполняет роль посредника между командой разработчиков и бизнес-руководством компании, поэтому чтобы добиться успеха в этой профессии, необходимо не только овладеть различными технологиями, но и обеспечить работу над проектом в соответствии с бизнес-целями. В книге более 50 архитекторов рассказывают о том, что считают самым важным в своей работе, дают советы, как организовать общение с другими участниками проекта, как снизить сложность архитектуры, как оказывать поддержку разработчикам. Они щедро делятся множеством полезных идей и приемов, которые вынесли из своего многолетнего опыта. Авторы надеются, что книга станет источником вдохновения и руководством к действию для многих профессиональных программистов.

Билл де Ора , Майкл Хайгард , Нил Форд

Программирование, программы, базы данных / Базы данных / Программирование / Книги по IT
Программист-прагматик. Путь от подмастерья к мастеру
Программист-прагматик. Путь от подмастерья к мастеру

Находясь на переднем крае программирования, книга "Программист-прагматик. Путь от подмастерья к мастеру" абстрагируется от всевозрастающей специализации и технических тонкостей разработки программ на современном уровне, чтобы исследовать суть процесса – требования к работоспособной и поддерживаемой программе, приводящей пользователей в восторг. Книга охватывает различные темы – от личной ответственности и карьерного роста до архитектурных методик, придающих программам гибкость и простоту в адаптации и повторном использовании.Прочитав эту книгу, вы научитесь:Бороться с недостатками программного обеспечения;Избегать ловушек, связанных с дублированием знания;Создавать гибкие, динамичные и адаптируемые программы;Избегать программирования в расчете на совпадение;Защищать вашу программу при помощи контрактов, утверждений и исключений;Собирать реальные требования;Осуществлять безжалостное и эффективное тестирование;Приводить в восторг ваших пользователей;Формировать команды из программистов-прагматиков и с помощью автоматизации делать ваши разработки более точными.

А. Алексашин , Дэвид Томас , Эндрю Хант

Программирование / Книги по IT