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

function moveComputerPaddle {

// Устанавливаем скорость биты, управляемой компьютером.

moveAmount = 8;

// Выясняем, движется ли мяч в этом направлении.

if (dx > 0) {

// Перемещаем биту вверх.

if (y < computerPaddle._y-moveAmount) {

computerPaddle._y -= moveAmount;

// Перемещаем биту вниз.

} esle if (y > computerPaddle._y+moveAmount) {

computerPaddle._y += moveAmount;

}

}

}

Еще один важный фрагмент кода входит в кадр «start game» и устанавливает исходные значения количества мячей и очков. Эти переменные не могут быть вставлены в функцию startLevel, так как они должны быть установлены только в начале игры, а не перед тем, как подается мяч.

numBalls = 7;

computerScore = 0;

playerScore = 0;

stop;

К сведению

В дополнение к уже описанным элементам необходимо создать текстовые поля playerScore и computerScore и поместить их на рабочее поле. Они должны быть расположены во всех кадрах, кроме «start game», таким образом, чтобы были видны между подачами мяча и в конце игры.

Другие возможности

Изменить количество мячей просто: достаточно изменить только одно значение в кадре «start game». Изменяя другие параметры, можно продлить или усложнить игру. Есть и другие варианты усовершенствования игры – например, увеличить скорость биты компьютера, поменяв одно значение в функции moveComputerPaddle.

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

<p>Бита и блоки</p>

Исходный файл: Paddlebricks.fla

Следующая игра намного сложнее двух предыдущих, хотя в ней используются те же основные элементы: мяч, бита и стены. Это классическая игра изначально называлась "Breakout" [14] .

На рис. 11.4 показан фрагмент игры. В дополнение к мячу и бите вверху экрана расположены пять рядов блоков. Цель игры – выбить блоки с помощью мяча. Когда будут выбиты все блоки, игра переходит на следующий уровень, где мяч летит с большей скоростью.

Рисунок 11.4. В игре «Бита и блоки» представлены ряды блоков, которые игрок должен выбить с помошью мяча

Задача проекта

Цель состоит в том, чтобы создать классическую игру игровых автоматов с битой и блоками. С помощью мыши можно перемещать биту по горизонтали. Мяч отскакивает от верхней и боковых стен и считается пропущенным, если пролетает мимо биты, сквозь нижнюю стену.

Когда мяч ударяется о блок, он отскакивает, а блок исчезает. После того как будут выбиты все блоки, игра переходит на другой уровень, где на экране окажутся те же блоки, но мяч будет двигаться быстрее. Просмотрите ролик Paddlebricks.fla, имеющийся на Web-сайте, чтобы увидеть, как работает игра.

Другое отличие этой игры от предыдущих состоит в том, что направление движения мяча зависит от того, в каком месте мяч ударится о биту. Если он попадает в левую часть биты, то отлетает влево, если же в правую, то вправо. Угол определяется тем, насколько далеко от центра биты ударился мяч.

Подход

Код для определения, в каком месте биты или стены ударился мяч, похож на код предыдущих двух игр. Единственное отличие заключается в том, что теперь мяч может отскакивать не только от верхней части биты, а и от любой ее точки. Таким образом, становится немного проще отбить мяч.

При столкновении мяча с блоком направление его движения по вертикали изменяется на противоположное. Блок же удаляется с экрана.

В предыдущих играх было достаточно определить, когда мяч ударяется о блок, для чего использовался метод hitTest. Теперь задача усложняется: надо рассмотреть все четыре стороны мяча по отношению ко всем четырем сторонам блока. Если мяч и блок полностью перекрываются, то считается, что произошло столкновение. С помощью метода hitTest можно было бы определить момент, когда мяч находится внутри прямоугольного блока. Но этого не достаточно для данной игры.

При столкновении мяча с битой рассчитывается расстояние между центром мяча и центром биты. Длина биты – 50 пикселов, так что это расстояние может быть чуть более 25 пикселов, либо со знаком "+", либо со знаком "-". Разделите данное число на 4 и получите значение между -7 и 7.

Новое значение будет присвоено переменной dx, которая определяет скорость движения мяча по горизонтали.

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

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

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

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

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

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

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

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

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

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

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

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